转自:http://www.cnblogs.com/wuzhenbo/archive/2012/04/26/2470357.html
思路:判断一个整数n是否为素数,只需用2到n-1之间的每一个整数去除,如果都不能被整除,那么m就是一个素数。
判断定理:“n不能够被不大于根号n的任何素数整除,则n是一个素数”
用代买表示如下:
int is_prime = trure;
int i = 2;
while (i <= (sqrt(n))) // 当i小于n的平方根时
{
if (n % i == 0) // 如果i处以n等于0,
is_prime == false; // i不是素数
i++; // 把i加1
}
优化:
这个程序可以在找到第一个余数为0的数之后,即使推出循环,而不是继续循环下去,那只会浪费CPU资源。
int is_prime = trure;
int i = 2;
while (i <= (sqrt(n))) // 当i小于n的平方根时
{
if (n % i == 0) // 如果i处以n等于0,
{
is_prime == false; // i不是素数
break; // 不是素数,立即结束循环。
}
i++; // 把i加1
}
}