指定区间的素数统计的几种方法
2016-05-06 10:28
495 查看
<pre name="code" class="cpp">#include <iostream> #include <math.h> #define SIZE 100 using namespace std; //判断number是不是素数 bool isPrime(int number){ if(number<=1) return false; for(int i=2;i<=sqrt((double)number);++i){ if(0==number%i) return false; } return true; } //计算区间内所有的素数 int countPrimesInRange(int prime[],const int lower,const int upper){ int count=0; for(int i= lower;i<=upper;++i){ if(isPrime(i)) ++count; else prime[i-lower+1]=1; } return count; } //计算小于n的所有素数 void countPrimeLessThanN(int prime[],const int n){ int i=2; int mid = n/2+1; while(i<=mid){ for(int j = i+1; j<= n; ++j){ if(0== prime[j] && 0 == j % i) prime[j] = 1; } ++i; while(prime[i] == 1) ++i; } prime[1]=1; } int main() { int prime[SIZE +1]={0}; int prime2[SIZE+1]={0}; int n=0; cin>>n; countPrimesInRange(prime,1,n); cout<<endl; int k=1; for(int i=1;i<=n;i++){ if(0 == prime[i]){ ++k; cout<<i<<"\t"; } if(8==k){ k=1; cout<<endl; } } countPrimeLessThanN(prime2,n); cout<<endl<<"----------------------------------"<<endl; k=1; for(int i=1;i<=n;i++){ if(0 == prime2[i]){ ++k; cout<<i<<"\t"; } if(8==k){ k=1; cout<<endl; } } int z; cin>>z; return 0; }
运行结果如下图所示
相关文章推荐
- Leetcode 345 Reverse Vowels of a String 字符串处理
- 一些乱七八糟的东西
- tar -cvPf new.tar `rpm -ql vsftpd` 建议不要用绝对路径'/'
- ViewPager的使用
- Linux下安装使用Mutt邮件客户端并配置邮件警报功能
- 微信商城开发:公众号平台接口配置及调试
- 设计模式C++学习笔记之五(Factory Method工厂方法模式)
- c++第四次实验
- Python yield 使用浅析
- 设计一个查询词提示系统
- 直播攻略:网易视频云送上OBS直播完整版教程
- xcode模拟器 切换页面缓慢
- Qt Creator在Windows上的调试器安装与配置
- CBCentralManager学习笔记
- Linux-33-linux基础重要命令10(L005-15)
- 算法时间复杂度
- 在Windows上使用CodeLite+MinGW+Clang进行开发
- how browser supports https
- 搜狐邮箱想说爱你不容易!
- angular