LogN的素数判断法和筛选法求素数的比较
来源:互联网 发布:软件过程规范 编辑:程序博客网 时间:2024/06/06 07:34
感觉之前东西不够多,重新写了一下,把计时器函数用进去,可以返回数个计时单元(若除以每秒计时单元个数那差别基本没有,均为0)
一般求法(用了const引用和内联函数)
#include<iostream>using namespace std;const int N=10000000;bool pos[N];inline bool isprime(const int &n){ if(n<=1) return false; for (int i=2; i*i<=n; i++) { if(n%i==0) return false; } return true;}int main(void){ time_t s=clock(),e; for (int i=2; i<=N; i++) { pos[i]=isprime(i); } e=clock(); cout<<(e-s)<<endl; return 0;}用时7366ms
筛选法求素数
#include<iostream>using namespace std;const int N=10000000;bool pos[N];int main(void){ pos[1]=true; time_t s=clock(),e; for (int i=2; i<=N; i++) { for (int j=2; j*i<=N; j++) { pos[i*j]=true; } } e=clock(); cout<<e-s<<endl; return 0;}//用时1515ms
除了系统内存以及其他的差别,可以看出筛选法的速度比一般素数判断快了好几倍。用于打表的话是个非常不错的选择
0 0
- LogN的素数判断法和筛选法求素数的比较
- Eratosthenes筛选法求素数的算法
- 筛选法求100以内的素数
- Eratosthenes筛选法求素数的算法
- 筛选法求100以内的素数
- 筛选法求100以内的素数
- 筛选法求100以内的素数
- 一个筛选法求素数的函数
- 筛选法求100以内的素数
- 素数筛选法 (求1~n的素数)
- 筛选法 求素数 一个数的所有因素和
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- 筛选法求素数
- dom4j 创建xml
- 深度解读谷歌开源的最精确自然语言解析器SyntaxNet
- 感谢Andreas Loew的TexturePacker license
- 软件众包 业余主义的复兴
- 【VR开发】htc vive+unity 3D 简单保龄球游戏
- LogN的素数判断法和筛选法求素数的比较
- Spring对jdbc的支持。
- Celery(二)-----------------使用Celery的第二步
- Android多媒体之MediaPlayer
- hdu 欧拉回路(判断)
- 十本最经典的java书籍
- 文件描述符及文件指针
- springmvc数据格式化
- essential c++ 练习题(1)