B-smooth 数

2024-09-05 22:28
文章标签 smooth

本文主要是介绍B-smooth 数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

小杨同学想寻找一种名为 B-smooth 数的正整数。

如果一个正整数的最大质因子不超过 B,则该正整数为 B-smooth 数。小杨同学想知道,对于给定的 n 和 B,有多少个不超过 n 的 B-smooth 数。

输入格式

第一行包含两个正整数 n 和 B,含义如题面所示。

输出格式

输出一个非负整数,表示不超过 n 的 B-smooth 数的数量。

输入输出样例

输入 #1

10 3

输出 #1

7

说明/提示

数据规模与约定

子任务得分𝑛≤n≤𝐵B
13010^31≤B≤10^3
23010^6sqrt(n)​≤B≤10^6
34010^61≤B≤10^6

对全部的测试数据,保证 1≤n,B≤10^6。

做法一:线性

#include <iostream>
#include <vector>
using namespace std;vector<int>p;
int n,b;
bool c[1000010],v[1000010];
void init()
{for(int i=2;i<=1000000;i++){if(!c[i]){p.push_back(i);if(i>b)v[i]=true;}for(auto e:p){int t=i*e;if(t>1000000)break;c[t]=true;if(v[i]||v[e])v[t]=true;if(i%e==0)break;}}
}
int main()
{cin>>n>>b;init();int cnt=n;for(int i=1;i<=n;i++)cnt-=v[i];cout<<cnt;return 0;
}

关键词:逆向思维,边筛边算

逆向思维:题目要求的是B-smooth数,我们可以求出非B-smooth数,用n减去这个数量。B-smooth数的定义是最大质因子不超过b,隐含了任何质因子都不超过b,于是非B-smooth数就是有至少一个质因子大于b就够了。

边筛边算:利用筛法特性记录信息。v记录了i是否是非B-smooth数。

---------------------------------------------------------------------------------------------------------------------------------

做法二:埃氏

#include <iostream>
using namespace std;const int m=1000000;
int c[m];
void init()
{for(int i=2;i<=m;i++){if(c[i]==0){c[i]=i;for(int j=2;j<=m;j++){long long t=1ll*i*j;if(t>m)break;c[t]=i;}}}
}
int main()
{init();int n,b;cin>>n>>b;int cnt=0;for(int i=1;i<=n;i++)if(c[i]<=b)cnt++;cout<<cnt;return 0;
}

关键词:夹带私货,适当调整

夹带私货:将原本用于判断i是否是合数,此处我们可以将它改为int类型,用于记录i的最大质因子。这也是由于埃氏筛法的一个性质,每一个数都会被他所有的质因子筛一遍(正版不是这样,后面会说到),所以经过覆盖,c数组中存的数就成了i的最大质因子。

适当调整:正版的埃氏筛不是这样的,第二层循环本应从i开始。虽然这样做效率会高一些,但效率高的原因是每个数只被最小质因子筛了,c数组里存的就成了最小质因子,所以需要省去这个优化才能得出正确结果。

其他:当实在查不出错是重写一遍,要么写着写着发现问题,要么写完就过了……真的!

这篇关于B-smooth 数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1140240

相关文章

glShadeModel函数 GL_SMOOTH与GL_FLAT的区别

glShadeModel函数用于控制opengl中绘制指定两点间其他点颜色的过渡模式 参数一般为GL_SMOOTH(默认),GL_FLAT opengl默认是将制定的两点颜色进行插值,绘制之间的其他点 如果两点的颜色相同,使用两个参数效果相同 如果两点颜色不同,GL_SMOOTH会出现过渡效果,GL_FLAT 则只是以指定的某一点的单一色绘制其他所有点 如图可以对比GL_SM

CSS 的文字平滑属性font-smooth

在CSS中,并没有直接名为font-smooth的属性来控制文字的平滑度。然而,开发者们经常希望改善网页上文字的可读性和外观,特别是字体渲染的平滑度。虽然CSS没有直接提供font-smooth这样的属性,但可以通过一些间接的方法来实现类似的效果。 一种常见的方法是使用text-rendering属性,它虽然不是专门用于控制字体平滑度的,但可以通过设置optimizeLegibility值来提示

Mesh平滑处理算法Laplacian Smooth

1.引言 3D平滑处理是一种减少锯齿(阶梯状线条)的技术。随着三维扫描和曲面重建技术的发展,得到这些实体表面的多边形网格表示已经不是难事,但所得到的表面往往包含含噪声。在形状设计领域,在散乱点拟合和光滑形伏、纹理映射等应用领域,都有对平滑曲面的极大需求。 2.Laplacian平滑算法原理 1. 初始化Mesh的邻接点结构集2. 新建临时点集,用来存储点平滑后的位置3. 对所有M

GIS入门,常用的多边形平滑曲线算法介绍和JavaScript的多边形平滑曲线算法库chaikin-smooth的实现原理和使用

前言 本章介绍一下常用的多边形平滑曲线算法及其使用案例。 多边形平滑算法通常用于图形处理或计算机图形学中,以使线条或曲线在连接处平滑过渡,而不出现明显的棱角或断裂。多边形平滑算法有多种实现方法,其中一些常见的有下面几种: 贝塞尔曲线插值(Bezier Curve Interpolation):使用贝塞尔曲线来插值原始线条的控制点,以获得平滑的转角效果。这种方法可以通过调整贝塞尔曲线的控制点来控

洛谷 B3969 [GESP202403 五级] B-smooth 数 题解

思路 我们只要求出每个数的最大质因数,再一个个判断是否满足要求即可。 如何找到每个数的最大质因数呢?其实,我们可以在埃氏筛法的基础上进行改进,从而达到算出最大质因数的目的。 让我们先来了解一下埃氏筛法,知道的人可以跳过。埃氏筛法,首先定义一个 bool 型数组(初始全部赋值为 1 1 1,再后面我们用 f l a g flag flag 进行代替),如果 f l a g i flag_

L1、L2、Smooth L1 loss

L1 loss 均绝对误差(Mean Absolute Error,MAE),公式如下 优点:因为梯度不变,对离群点不敏感 缺点:因为梯度不变,不管是误差小还是大,梯度都一样,不利于模型收敛。 L2 loss 均方误差(Mean Square Error,MSE),公式如下 优点:训练初期误差大,梯度也大,有利于快速收敛。后期误差小,梯度也小,有利于模型的稳定。 缺点

网络安全相关ips(Suricata)Smooth-Sec

【开源】Bro、Snort/suricata对比_roshy的博客-CSDN博客_bro snort Linux -- 利用IPS(入侵防御系统) 构建企业Web安全防护网_weixin_33682719的博客-CSDN博客 几款开源NTA/IPS/NDR工具的简单比较_兔子不咬手指的博客-CSDN博客_开源ips Smooth-Sec download | SourceForge.net

滑动平均(moving_average)与均值滤波(mean_smooth)的区别

在数据处理时,我们为了平滑数据,有时会用到滑动平均算法。算法很简单,但是我不想自己写,于是上网搜现成的轮子,但是发现很多轮子是错误的,如文章:https://blog.csdn.net/weixin_42232219/article/details/90328880,https://www.yzlfxy.com/jiaocheng/python/338117.html 他们混淆了滑动平均与均值滤

echarts option series smooth

echarts option series smooth 平滑处理 == smooth:0.3 == echarts_04_line.html <!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><title></title></head><body><div id="b

Leetcode 2110. Number of Smooth Descent Periods of a Stock [Python]

DP。DP的每一位表示的是以此位数字为结尾的光滑下降序列。则,如果prices[i] + 1 == prices[i-1]。那么无论有多少光滑下降序列以prices[i-1]结尾,都有这样的数量再加上1(也就是prices[i]自己)结尾于prices[i]. class Solution:def getDescentPeriods(self, prices: List[int]) -> int