usa*_*800 11 java methods primes function
这是我的isPrime方法:
private static boolean isPrime(int num) {
if (num % 2 == 0) return false;
for (int i = 3; i * i < num; i += 2)
if (num % i == 0) return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
我把isPrime(9)它放回去了true.这个方法有什么问题?
Tar*_*lah 35
你的情况应该是i*i <= num
private static boolean isPrime(int num)
{
if (num == 2)
return true;
if (num < 2 || num % 2 == 0)
return false;
for (int i = 3; i * i <= num; i += 2)
if (num % i == 0)
return false;
return true;
}
Run Code Online (Sandbox Code Playgroud)
您没有在考虑中使用数字9,因此9 <9将导致错误.但你需要检查9.
小智 5
我的样本:
public boolean isPrime(int x) {
if (x==1) {
return true;
} else {
for(int i=2;i<=Math.sqrt(x);i++) {
if (x%i==0) return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)