总理检查
请注意,根据定义,1
不是素数。要检查数字 n
是否是素数,我们应该尝试找到 n
的除数 i
。如果我们不能,那么 n
是一个素数。当 n % i == 0
评估为真时,我们发现了一个除数。我们只需要尝试奇数,因为只有一个偶数素数,即 2
,我们将其视为特殊情况。另外,只有包含 sqrt(n)
的数字才是可能的除数,因为当 n = a * b
时,至少有一个因子最多是 sqrt(n)
。
要检查数字是否为素数,可以使用以下算法:
boolean isPrime (int n) {
if (n < 2) {
return false;
}
if (n % 2 == 0) {
return n == 2;
}
for (int i = 3; i*i <= n; i += 2) {
if (n % i == 0) {
return false;
}
}
return true ;
}