在Java语言中使用函数判断一个数是否为质数。
发布时间:2023-05-26 10:40:19
判断一个数是否为质数,可以使用以下两种方法:
1. 先判断是否为偶数,如果是偶数且不为2,则一定不是质数;如果是奇数,则从3开始判断是否为其因数的倍数,如果是则一定不是质数,如果不是则是质数。
2. 判断一个数是否为质数,可以使用除法判断法,即从2到n-1,用n依次除以每个数,如果能整除,则不是质数;如果都不能整除,则是质数。
下面分别给出这两种方法的代码实现。
方法一:
public static boolean isPrime(int n) {
if (n == 2) {
return true;
}
if (n % 2 == 0 || n == 1) {
return false;
}
for (int i = 3; i * i <= n; i += 2) {
if (n % i == 0) {
return false;
}
}
return true;
}
方法二:
public static boolean isPrime(int n) {
if (n == 2) {
return true;
}
if (n % 2 == 0 || n == 1) {
return false;
}
for (int i = 2; i < n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
这里需要注意的是,方法一中判断是否为质数的循环条件为i * i <= n,这是因为如果i > sqrt(n),则i与n/i中至少有一个大于sqrt(n),另一个小于sqrt(n),所以只需要判断小于sqrt(n)的数即可。方法二中的循环条件为i < n,这是因为除了1和本身以外,没有因数大于本身,所以只需要判断小于本身的数即可。
