对代码的解释:判断一个素数,首先
和1不是素数、
2是素数、能被
2整除的不是素数,排除这些数后
然后对num进行开平方根,从
3开始到这个平方根,每隔
2判断一下,看看
num能否被其整除,如果能就不是素数,否则,一直检查到最后都没有,那么这个数一定是素数。目前这个效率应该是最高的
bool isPrimeNum(int num)
{ if (num <= 2)
{
return num == 2;
}
if (num % 2 == 0)
{
return false;
}
int iSqrt = sqrt(num);
for (int i = 3; i <= iSqrt; i+=2)
{
if (num % i == 0)
{
return false;
}
}
return true;
}
附件列表