不久前,我得到了一个关于如何编写 bool 函数来检查数字是否为素数的问题的答案:bool function for prime numbers。
所以从这里,有效的代码是
bool prime(int x)
{
if (x < 2) return false;
for(int i=2; i<= sqrt(x); i++) {
if ((x%i) == 0) return false;
}
return true;
}
但是,如果我将代码更改为
bool prime(int x)
{
if (x < 2) return false;
for(int i=2; i<= sqrt(x); i++) {
if ((x%i) != 0) return true;
}
return false;
}
它不能正确确定一个数字是否是许多整数的素数。我认为这两段代码是等价的。有什么方法可以使这个bool prime
函数工作!=
吗?
谢谢。