质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数;否则称为合数。
Attention!!!:
- 1不是质数也不是合数
- 2是质数
- 如果一个数含有除去一和自身以外的因子,由于该数为两个因子之积,即num=x*y,因为对称性,x或者y的范围只需考虑从2~k(k2=num)即可,那么该因子最大不超过该数的1/2次方,即<=sqrt(num),故有代码如下:
Code:
bool IsPrime(int num){
if(num==1) return false;
if(num==2) return true;
for(int i=2;i<sqrt(num)+1;i++){
if((num%i)==0) return false;
}
return true;
}