素数的几个性质: 1不是素数;所有大于2的素数均是奇数;所有大于三的奇数都可以写成6k+/-1的形式;所有的正整数只有一个大于sqrt(n)的素因子;一个数n,如果n不能被f(1<f=<sqrt(n))整除,n就是一个素数。 基于如上性质,我们设计一个算法检验一个数是否是素数。 #include<cmath> using namespace std; bool isprime(int n) { if(n==1) return false; else if(n<4) // 2 and 3 are prime return true; else if(n % 2 == 0) // even number greater than 2 are not prime return false; else if(n < 9) // we have already excluded 4,6 and 8. return true; else if(n % 3 == 0) // return false; else { int r = floor(sqrt(n)); int f = 5; while(f <= r) { if(n%f==0) return false; if(n%(f+2)==0) return false; f=f+6; } return true; } }