素数筛
2018-02-04 23:22
148 查看
素数筛,顾名思义就是要筛去合数,留下素数,达到预处理的效果
基本思路:把从1开始的,某一范围内的正整数从小到大顺序排列,1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。
上代码之前,配上一道洛谷的题P1865 A % B Problem:点击这里
就是一道素数筛的裸题!!!(配上前缀和使用更美味)
附上本人的解题报告:
上代码:
END
基本思路:把从1开始的,某一范围内的正整数从小到大顺序排列,1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。
上代码之前,配上一道洛谷的题P1865 A % B Problem:点击这里
就是一道素数筛的裸题!!!(配上前缀和使用更美味)
附上本人的解题报告:
上代码:
#include <cstdio> #include <iostream> using namespace std; int f[10000005]; void fp()//这是一个英文名,find_prime哈哈哈哈 { f[1]=1;//1不是素数,所以特判 for(int i=2;i<=n;i++) for(int j=2;j*i<=n;j++) //从某个数的2倍开始删,保留这个数本身 f[j*i]=1; } int main() { int n; cin>>n;fp(); for(int i=2;i<=n;i++) if(f[i]) cout<<i<<" "; return 0; }
END
相关文章推荐
- 费马小定理 素数判定 蒙哥马利算法
- 素数筛法,找到0到max之间的所有素数
- 统计十个数中所有素数的和
- uva 571 素数的性质
- 求素数(Thinking in Java 4th Edition)
- UVA 1415 Gauss Prime(高斯素数)
- 1007. 素数对猜想 (20)
- C冒泡排序 @100到200素数
- 几种判断素数的办法。
- 100以内的素数
- 最大素数
- 1007. 素数对猜想 (20):素数筛法 8.21Version2.0留有疑惑···段错误
- python 输出101到200 之间的所有素数,并统计个数
- 素数的Miller_Rabbin测试
- POJ 1365 素数筛
- 素数标记 Interesting Numbers URAL - 2070
- 孪生素数的求法
- 快速查找素数 NYOJ 187
- 华为OJ:查找组成一个偶数最接近的两个素数
- 求100~200间的所有素数