【转】素数判断四方法
来源:互联网 发布:日式风格的房间知乎 编辑:程序博客网 时间:2024/05/22 15:08
方法一:愚蠢型
int i,n;while(cin>>n){ for(i=2;i;i++) { if(n%i==0) { break; } } if(i==n) cout<<"YES"<<endl; else cout<<"NO"<<endl;}
方法二:聪明了点
int i,n;while(cin>>n){ int x=(int)sqrt(n);//减少一些运算 for(i=2;i<=x;i++) { if(n%i==0) { break; } } if(i>x) cout<<"YES"<<endl; else cout<<"NO"<<endl;}
方法三:埃拉托斯特尼筛选法,挺好记
const int MAXN=10000;bool check[MAXN];int prime[MAXN];int n,count;while(cin>>n){ count =0; memset(check,0,sizeof(check)); for(int i=2;i<=n;i++) { if(!check[i]) prime[count++]=i; for(int j=i+i;j<=n;j+=i)//注意细节 check[j]=1;//core } for(int i=0;i<count;i++) cout<<prime[i]<<endl; }
方法四:线性筛选/欧拉筛选法
const int MAXN=10000;bool check[MAXN];int prime[MAXN];int n,count;while(cin>>n){ count =0; memset(check,0,sizeof(check)); for(int i=2;i<=n;i++) { if(!check[i]) prime[count++]=i; for(int j=0;j<count;j++) { if(i*prime[j]>MAXN) break;//过大,推出 check[i*prime[j]]=1; if(i%prime[j]==0) break; } } for(int i=0;i<count;i++) cout<<prime[i]<<endl; }
阅读全文
0 1
- 【转】素数判断四方法
- 素数判断一些方法
- 高效判断素数方法
- 判断素数的方法
- 高效判断素数方法
- 素数判断方法大合集
- 高效判断素数方法
- Java判断素数方法
- 判断素数方法
- 素数判断方法
- 素数的判断方法
- 素数的判断方法
- 素数判断方法
- 素数判断的方法
- 快速判断素数的方法
- 判断素数的简单方法
- 快速素数判断的方法
- 快速素数判断的方法
- CSS——关于继承性和层叠性的练习
- Swift 下标脚本
- SpringMVC拦截器配置及使用方法
- Apache 创建虚拟主机目录和设置默认访问页面
- 安卓属性动画与自定义控件实现圆球移动并实现颜色渐变
- 【转】素数判断四方法
- 金蝶kis版本差异
- mysql 函数的基本操作
- 闪回5-闪回表
- 67 个拯救前端开发者的工具、库和资源
- 转 C++中的未定义行为
- TexturePacker的使用
- 简易代码实现简单美颜美白效果
- TensorFlow