【noip】【C++】关于素数或质数的两种常用判断算法;
来源:互联网 发布:淘宝直通车怎么测款 编辑:程序博客网 时间:2024/05/20 13:16
【noip】【C++】关于素数或质数的两种常用判断算法;
1.第一种很简单,根据素数的定义来判断【维基百科是如此对素数进行定义:一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除】
重要算法思想就是将待判数n分别除以 k[2,n-1],若发现 n%k!=0时,则可以判定该待判数n为真素数(质数);
c++算法实现:
bool(int n)//n为待判定数,如果该判定数为质数,则返回真,否则返回假。{ for(int k=2;k<=n-1;k++) { if(n%k==0) { return false; } } return true;}//根据素数定义进行判断,复杂度为O(n);【应该是,复杂度我也不太会算】
2.第二种则根据(质数筛选定理):当待判数n不能够被不大于根号n的任何质数整除,则n是一个质数;
这个算法相对于上一个会减少很多不必要的判断。
“`
include
include // for sqrt()
define MAX 100
using namespace std;
int main() {
cout << 2 << endl; //2是质数
for (int i = 3; i <= MAX; i += 2) { //偶数不是质数,步长可以加大
float temp = static_cast(i);
int mid = static_cast(sqrt(temp));
int j;
for (j = 3; j <= mid; j += 2)//i是奇数,当然不能被偶数整除,步长也可以加大。
if (i % j == 0)
break;
if (j > mid) cout << i << endl; } return 0;
}
“
阅读全文
1 0
- 【noip】【C++】关于素数或质数的两种常用判断算法;
- 素数判断的两种常用办法
- c、c++关于质数||素数的求法
- 【算法题】判断素数/质数
- 判断是否为素数或质数
- 判断一个数是否是素数的两种算法
- 求素数(质数)的算法
- C++:Miller-Rabin素数(质数)检测算法
- 关于质数的算法
- 判断质数(素数)的方法
- Python判断质数(素数)的方法讲解
- 判断一个整数是否为素数(或称为质数)
- 判断 素数 质数
- 判断素数(质数)
- 判断素数(质数)
- 素数 的两种判断方法
- 判断素数的两种方式
- 素数的实现,质数,判断一个数是不是素数
- 自编码器的tensoflow的具体实现及理解
- WPF_MVVM 开发的几种模式讨论
- Android_项目文件结构目录分析
- Android_最全的Android源码目录结构详解
- leetcode 72 edit distance 详细解答
- 【noip】【C++】关于素数或质数的两种常用判断算法;
- JDK8: java.lang.IllegalStateException: Duplicate key 3
- WPF_UI线程
- Android_Android Studio 目录结构
- Android_AndroidManifest.xml配置文件
- 2017年8月3日训练日记
- LXC/KVM虚拟化基本概念
- WPF_Viewport3D_一个简洁规整的例子(Z)
- 2017 Multi-University Training Contest 4 solutions BY 陈松杨