求1到n之间的素数
来源:互联网 发布:梁国平广东广电网络 编辑:程序博客网 时间:2024/05/24 03:19
题目:求1到n之间的素数,n>=2。
方法一:试除法。判断3到n之间所有奇数是否为素数。判断一个数是否为素数时,只需试除小于等于根号n的所有素数。
bool IsPrime(int n, const vector<int> &res){int mark = sqrt(n);for (int index=0; index<res.size() && res[index]<=mark; index++){if (n%res[index] == 0)return false;}return true;}vector<int> FindPrimes(const int &n){vector<int> res;if (n <= 1)return res;res.push_back(2);for (int i = 3; i <= n; i+=2){if (IsPrime(i,res))res.push_back(i);}return res;}
方法二:筛选法。
int FirstTrue(const vector<bool> &IsPrime, int start){for (int i = start; i < IsPrime.size(); i++){if (IsPrime[i])return i;}return IsPrime.size();}vector<int> FindPrimes2(const int &n){vector<int> res;if (n <= 1)return res;vector<bool> IsPrime(n + 1, true);int i = 2;while (i=FirstTrue(IsPrime, i), i<= n){res.push_back(i);for (int a = 2, j = i *a; j <= n; a++){IsPrime[j] = false;j = i*(a+1);}i++;}return res;}
0 0
- 求1到N之间的素数
- 求1到n之间的素数
- 求1到n之间素数的个数
- 求 1~n 之间素数的个数
- 输出1到N之间的素数
- 求1到100之间的素数
- 求1到100之间的素数
- 求1到100之间的素数
- 1、求素数:求2至N(2≤N≤500)之间的素数
- 求1到N之间的质数
- 求两个数1~n之间的素数
- 求m与n之间的素数
- 求解1到n之间素数的个数
- 筛选法求1到100之间的素数
- 求100到200之间的素数
- 求100到200之间的素数
- 求100到200之间的素数
- 求100到200之间的素数
- 求若干个整数的平均数
- XXX
- Android播放视频(一)
- Android播放视频(二)
- Android上下左右手势滑动事件处理
- 求1到n之间的素数
- Andriod录制视频(一)
- Android录制视频(二)
- MyEclipse10.5添加SS2H支持及Hibernate逆向生成BEAN
- Android利用drawable文件夹自定义控件背景、样式
- Android利用drawable文件夹自定义控件背景、样式
- Android学习(3):认识APK
- Looper类浅析
- Handler原理浅析