素数生成算法
来源:互联网 发布:rolling girl动作数据 编辑:程序博客网 时间:2024/05/29 17:12
素数生成问题,解法主要分为试除法和筛选法两种,筛选法里又有很多算法,这里各实现一种比较方便且容易理解的方法,用来生成1到n之间的素数。
1.试除法
bool IsPrime(int num){if(num < 2)return false;if(num == 2)return true;if(num % 2 == 0)return false;for(int i = 3; i <= sqrt(num); ++i){if(num % i == 0)return false;}return true;}void MakePrime(int n){for(int i = 1; i < n + 1; ++i){if(IsPrime(i))cout << i << " ";}cout << endl;}2.筛选法
先声明一个大小为n+1的bool数组,先把下标为奇数的声明为true,下标为偶数的声明为false。然后对于素数,它的倍数全都声明为false,剩下的为true的数组下标即为素数。
void MakePrime(int n){bool prime[n+1] = {false};prime[2] = true;for(int i = 3; i < n+1; i += 2)prime[i] = true;for(int i = 3; i <= sqrt(n); i += 2){if(prime[i]){for(int j = 2*i; j < n+1; j += i)prime[j] = false;}}//打印for(int k = 1; k < n+1; ++k){if(prime[k])cout << k << " ";}cout << endl;}
0 0
- 素数快速生成算法
- 素数生成算法
- 素数生成算法
- 素数生成算法
- 素数生成算法
- 素数生成算法
- 米勒拉宾大素数生成算法
- 生成素数的算法1,2,3
- NJUPT-数据结构与算法分析 素数判定和生成
- 素数算法
- 素数算法
- 素数算法
- 素数算法
- 素数算法
- 素数算法
- 素数算法
- 素数算法
- 素数算法
- StackOverflow程序员推荐:每个程序员都应读的30本书
- Linux14.04下安装网易云音乐和搜狗输入法(太棒了!!!)
- 循环队列与链队列的优劣势
- 每次rand出来都是41?说好的随机数呢?!
- 层模型--固定定位
- 素数生成算法
- Linux -- 帐号管理
- 对密码进行加密和解密
- Python进阶笔记(4)_ 面向对象编程基础
- Thinking in Java——第十章-内部类
- hdoj-4045-Machine scheduling
- 第7课:零基础实战Scala面向对象编程及Spark源码解析
- Android加载动画系列——BlockLoadingAnim
- 火狐(Firefox)浏览器解决首页捆绑的问题