📅  最后修改于: 2023-12-03 15:15:53.444000             🧑  作者: Mango
isPrime
校验公式 JavaisPrime
是一种常用于判断一个数是否为质数的算法,其校验公式为仅能被1和自身整除。
Java 代码实现如下:
public static boolean isPrime(int num) {
if (num <= 1) {
return false; // 1不是质数
}
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false; // 能被整除,不是质数
}
}
return true;
}
该方法接收一个整数作为参数,并返回一个布尔值,表示该整数是否为质数。具体实现为:
false
。false
。false
,则该数为质数,返回 true
。System.out.println(isPrime(7)); // true
System.out.println(isPrime(12)); // false
这里有几个性能优化的建议。
对于 num
取模,可以通过位运算进行优化。因为对于2的幂次方,位运算比取模更快。代码实现如下:
if (num <= 1) {
return false;
}
if (num == 2 || num == 3) {
return true;
}
if (num % 2 == 0 || num % 3 == 0) {
return false;
}
for (int i = 5; i * i <= num; i += 6) {
if (num % i == 0 || num % (i + 2) == 0) {
return false;
}
}
return true;
在循环中,可以将循环条件改为 i * i <= num
,避免每次都进行开平方根运算,提高效率。
for (int i = 2; i * i <= num; i++) {
...
}
isPrime
校验公式是一种常用的算法,在 Java 中的实现也十分简单。当传入的参数越大时,循环遍历的次数越多,而且很难找到一种快速的方法,只能靠不断优化算法来提高效率。