📅  最后修改于: 2023-12-03 15:41:11.168000             🧑  作者: Mango
素数是指仅能被1和本身整除的正整数,在计算机算法中经常需要使用。下面将介绍素数的判断方法以及C++代码的实现。
素数,又称质数,是指只能被1和本身整除的正整数,它是大于1的自然数中,除了1和本身以外,不能被其他自然数整除的数。
例如: 2、3、5、7、11等数字就是素数。
暴力枚举法,就是从2到该数本身-1的所有数进行判断,如果有一个数能够整除该数,那么该数就不是素数。
代码实现如下:
bool isPrime(int n){
if(n < 2) return false;
for(int i = 2; i*i <= n; i++){
if(n % i == 0) return false;
}
return true;
}
厄拉多塞筛法,又称埃氏筛法,通过筛选来找到素数。其基本思想是,从2开始,将每个质数的倍数都标记成合数,以达到筛选素数的目的。
代码实现如下:
bool isPrime(int n){
if(n < 2) return false;
bool *isprime = new bool[n + 1];
for(int i = 2; i <= n; i++) isprime[i] = true;
for(int i = 2; i*i <= n; i++){
if(isprime[i]){
for(int j = i*i; j <= n; j += i){
isprime[j] = false;
}
}
}
bool res = isprime[n];
delete []isprime;
return res;
}
本文介绍了素数及其判断方法,并给出了对应的C++代码实现。对于大量数据的素数判断,厄拉多塞筛法能够很好地解决此类问题。