筛法求素数
2016-04-03 12:14
357 查看
把素数的倍数全部标记,即可求出所有的素数。
如有不对欢迎指出。
#include <iostream> #include <string.h> #include <stdio.h> using namespace std; const int maxn = 100000000+100; //一亿 bool arr[maxn]; void isPrim(int n) { for(int i=2;i<=n;i++) if(arr[i]){ //如果是素数,那么就把它的倍数全改为false for(int j=i+i;j<=n; j+=i) arr[j]=false; } } int main() { int n, cnt; while(cin>>n){ memset(arr,true,sizeof(arr)); cnt=0; isPrim(n); for(int i=2;i<=n;i++){ if(arr[i]){ cout<<i<<" "; cnt++; } } cout<<"\n"<<"有多少个质数:"<<cnt<<endl; } return 0; }
如有不对欢迎指出。
相关文章推荐
- Swift笔记 label 显示富文本或HTML
- maven之可视化项目依赖
- 解读为毛我的iPhone5老是升级不了iOS9.3新系统
- 使用Eclipse写JSP如何自动倒包
- hdu 5656 CA Loves GCD(dp+gcd)(Bestcoder #78 1002)
- js数据类型--对象&数组
- 第5周学习进度
- C/C++ 读入一行字符串
- Libgdx之TexturePacker TextureAtlas
- 为Ubuntu 安装Transmission 2.90
- C#、.Net代码精简优化(空操作符(??)、as、string.IsNullOrEmpty() 、 string.IsNullOrWhiteSpace()、string.Equals()、System.IO.Path 的用法)
- Python 编程风格
- APP Inventor网络微数据库tinywebdb的增删查改
- Settings License
- hadoop hdfs 操作
- Git(进击学习:远程仓库操作)-V3.0
- mount命令(用来挂载硬盘或镜像等)
- HDU 1200 To and Fro
- win7 64下VC++6.0(Unable to register this add-in because its DLLRegisterServer return an error)
- linux下JDK1.7安装