算法:判断质数

质数定义:指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个正因数的数)。

思路1:定义

根据定义,采用2到n-1中的每一个数去除n,如果不能被整除,则该数为质数。时间复杂度:O(n)。

1
2
3
4
5
6
7
8
9
10
11
12
bool is_prime(int n)
{
bool isprime = true;
for(int i=2; i < n; i++){
if(n % i==0){
isprime=false;
break;
}
}
return isprime;
}

思路2:质数筛选定理

质数筛选定理: 如果n不能够被不大于根号n的任何质数整除,则n是一个质数。
参考链接:

1
2
3
4
5
6
7
8
9
10
11
bool is_prime(int n){
bool isprime= true;
int max = static_cast<int>(sqrt(n)); \\隐式类型转换
for(int j=2; j<=max; j++){
if(n%j == 0){
isprime=false;
break;
}
}
return isprime;
}
作者

John Doe

发布于

2021-01-25

更新于

2021-01-26

许可协议

You need to set install_url to use ShareThis. Please set it in _config.yml.
You forgot to set the business or currency_code for Paypal. Please set it in _config.yml.

评论