线性筛选求素数
来源:互联网 发布:画平面图软件 编辑:程序博客网 时间:2024/06/08 12:13
几种方法求素数的
1 目前是我见过的较快的速度求素数了
#include<stdio.h>#include<stdlib.h>#include<time.h>char whe[1000001];int main(){ clock_t t1,t2; int t,count=0; t1=clock(); for(int i=2; i<=1000; i++) if(whe[i]==0) for(int j=2; (t=j*i)<=1000000; j++) { whe[t]=1; //count--; } t2=clock(); // printf("%d\n",count); printf("%ld\n",t2-t1); for(int k=2; k<=1000000; k++) if(whe[k]==0) count++; printf("%d\n",count); return 0;}
2#include<time.h>#include<stdio.h>#include<iostream>#include<algorithm>#include<bits/stdc++.h>const int maxn=1000000+1;using namespace std;bool flag[maxn];int primes[maxn],prime_num=0;int main(){ int count=0; clock_t t1,t2; memset(flag,true,sizeof(flag)); t1=clock(); for(int i=2; i<maxn; i++) { if(flag[i]) primes[prime_num++]=i; for(int j=0; j<prime_num&&primes[j]*i<maxn; j++) { flag[primes[j]*i]=false; if(i%primes[j]==0) break; } } t2=clock(); printf("%ld\n",t2-t1); for(int i=2;i<maxn;i++) if(flag[i]) count++; printf("%d\n",count);}
3#include<time.h>#include<stdio.h>#include<iostream>#include<algorithm>#include<bits/stdc++.h>const int maxn=1000000+1;using namespace std;int a[maxn];int main(){ int count=0; clock_t t1,t2; t1=clock(); for(int i=2; i<=1000; i++) { if(!a[i]) { for(int j=2*i; j<maxn; j+=i) { a[j]=1; } } } t2=clock(); printf("%ld\n",t2-t1); for(int i=2;i<maxn;i++) if(!a[i]) count++; printf("%d\n",count);}
0 0
- 线性筛选求素数
- 线性筛选求素数
- 线性筛选法求素数表
- 线性筛选法求素数表
- 埃氏筛选与线性筛选求素数
- 快速线性筛选法求素数(质数)
- 线性筛选素数模板
- 素数线性筛选
- 素数的线性筛选
- 线性筛选素数法
- 线性筛选素数
- 素数线性筛选法
- 素数线性筛选
- 【线筛】线性筛选素数
- 线性筛选素数--python
- 线性筛选素数。。。。线性哦
- 筛选法求素数
- 筛选法求素数
- sdut oj3-5 学生成绩统计
- [Coursera机器学习]Support Vector Machines WEEK7编程作业
- Python+opencv3.0配置
- java细节,防止内存泄露
- 关于decorator 的理解
- 线性筛选求素数
- sass认识
- JAVA多线程售票问题
- JAVA WEB 开发环境的的搭建
- 给View添加特定数量的Border
- React Native实现一个自定义模块
- Android开发——官方推荐使用DialogFragment替换AlertDialog
- 润乾报表call函数在单元格中的使用
- 带宽和下载速度的换算以及流量