素数筛法
来源:互联网 发布:淘宝联盟电脑版和手机 编辑:程序博客网 时间:2024/06/07 03:11
求1…n素数个数,要求O(n)算法。
精髓:if此数是素数,一定不会跳出,
else此数的倍数一定被它的质因子筛去了。
因此,可以避免冗余操作。
#include<iostream>#include<cstdio>using namespace std;const int maxn=1e5;int n,pri[maxn+1];//pri存储素数bool vis[maxn+1];//vis该数是否被筛去 int euler(int m){ int cnt=0;//素数个数 vis[1]=1;//并没有意义 for(int i=2;i<=m;i++) { if(!vis[i])//只要还没有被筛去,就是素数 pri[++cnt]=i; for(int j=1;i*pri[j]<=m&&j<=cnt;j++) { vis[i*pri[j]]=1; if(i%pri[j]==0)//精髓所在 break; } } return cnt;}int main(){ scanf("%d",&n); printf("%d\n",euler(n)); return 0;}
0 0
- 又见素数(素数筛法)
- nyoj 26 孪生素数 素数筛法
- HDU 4548 美素数 // 素数筛法
- 素数判断和素数筛法
- 素数筛法-----》大规模的判断素数
- 素数筛(筛选法求素数)
- 素数筛选法(素数筛)
- 森德拉姆素数筛法
- 素数筛法
- 素数筛法
- 筛法素数表
- 筛素数法
- POJ2262 素数筛法
- POJ3306 素数筛法
- 素数筛法
- 素数筛法
- 素数筛法
- 【数学】素数筛法
- 扒一扒网页设计里的浮动 属性
- [转载]Java面试基础概念总结
- session与cookie的区别
- 【Android】无法发送短信的问题
- 重装系统提示“Windows安装无法继续”
- 素数筛法
- 易语言 修改IE协议头模拟手机浏览网页
- 随笔:我为什么要写博客?
- 我对.Net应用价值的一些思考
- 用纯C语言写的一个植物大战僵尸的外挂
- 方法:如何获取操作系统所有分区(逻辑驱动器)
- Loading Large Bitmaps Efficiently
- 2016.07.11 完成 9 道题
- 方法:如何解决CFindFile:FindNextFile找不到最后一个文件