【发布时间】:2020-10-31 10:57:04
【问题描述】:
有人可以帮助我澄清当整数通过此方法时会发生什么,因为我很难理解。谢谢!
public static boolean isPrime(int n) {
if (n == 1) {
return false;
}
for (int i=2; i<= n/2; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
【问题讨论】:
-
用
5这样的具体数字试一试,然后逐行逐句通过代码并理解每一步。 -
不幸的是,这个算法是有缺陷的。
n/2真的应该是Math.sqrt(n)+1但其余的都是合理的尝试。你还需要知道%做了什么。 -
@WSJ 它为
n == 0返回 true,这也是不正确的 -
@ParkerThompson 查看this 以了解更好的实现。
-
素数是任何(正?)整数,只能被它自己和 1 整除。
标签: java for-loop methods boolean primes