线性筛&一般筛
来源:互联网 发布:比较好的php编辑器 编辑:程序博客网 时间:2024/06/09 19:59
一般筛,每个数被筛次数会出现>1,复杂度近似于O(NloglogN):
//一般筛 var vis:array[0..1000005]of boolean; i,j,n:longint; begin assign(input,'xxs.in');reset(input); assign(output,'xxs.out');rewrite(output); fillchar(vis,sizeof(vis),1); readln(n); for i:=2 to trunc(sqrt(n)) do if vis[i] then for j:=2 to n div i do vis[i*j]:=false; for i:=2 to n do if vis[i] then writeln(i); close(input);close(output); end.
线性筛,关键在于if (i%prime[j]==0) break,就避免了一个数被重复筛,复杂度O(N):
//线性筛 #include<cstdio>#include<cstring>int prime[1000005];int n,cnt;bool vis[1000005];using namespace std;int main(){freopen("xxs.in","r",stdin);freopen("xxs1.out","w",stdout);int n,cnt;scanf("%d",&n);cnt=0;memset(vis,0,sizeof(vis));for (int i=2;i<=n;i++){if (!vis[i])prime[++cnt]=i;for (int j=1;j<=cnt&&prime[j]*i<=n;j++){vis[prime[j]*i]=1;if (i%prime[j]==0) break;}}for (int i=1;i<=cnt;i++) printf("%d\n",prime[i]);return 0;}
【写的有漏洞的,欢迎路过大神吐槽】
2016/12/22 17:40:40
Ending.
0 0
- 线性筛&一般筛
- 线性筛之一般算法
- 求素数: 一般线性筛法 + 快速线性筛法
- 素数的一般筛法与线性筛法
- 筛法求素数 (一般的线性筛法)
- POJ 2262 Goldbach's Conjecture (求解素数的一般筛和线性筛)
- 一般筛法和快速线性筛法求素数 求素数的一点总结
- #C语言#关于求素数的思路(一般筛法到线性筛)
- 一般线性最小二乘法
- 一般线性模型
- 一般线性最小二乘法
- 一般线性模型学习总结
- 线性筛
- 线性筛
- 线性筛
- 线性筛
- 线性筛
- 线性筛
- unity绘制跟随鼠标移动的曲线
- iOS 自定义加密解密——解密
- html5中drag//drop拖曳效果的用法
- java编写ajax超简单通讯录项目(数据库为oracle)
- Iframe 和父页面交互+Iframe 的onclick()事件
- 线性筛&一般筛
- 有关于优化封装Stystem.out.println来测试
- Intel CPU 地址空间总结
- 文件检索大于某尺寸并按尺寸排序的shell命令
- iOS phoneGap的使用(二、自定义phoneGap插件)
- 暗时间
- 免费理论
- 《贪吃蛇Snake》源码下载
- 谢谢2016