在Java中判断一个数是否为质数,可以使用以下方法:
简单枚举法
遍历从2到该数的一半,检查该数是否能被其中任何一个数整除。如果能被整除,则该数不是质数;否则,该数是质数。
优化枚举法
只需遍历到该数的平方根,因为如果一个数有大于其平方根的因数,那么它必定还有一个小于或等于其平方根的因数。
试除法
从2遍历到该数减1,检查该数是否能被其中任何一个数整除。如果能被整除,则该数不是质数;否则,该数是质数。
```java
import java.util.Scanner;
public class Prime {
public static void main(String args[]) {
System.out.println("请输入一个数字:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int count = 0;
if (isPrime(num)) {
System.out.println(num + "是一个质数!");
} else {
System.out.println(num + "不是一个质数!");
}
num = num + 1;
loop: while (count < 3) {
if (isPrime(num)) {
System.out.println(num);
count++;
}
num++;
}
}
public static boolean isPrime(int n) {
if (n <= 1) {
return false;
}
for (int i = 2; i <= Math.sqrt(n); i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
}
```
这个程序首先判断输入的数是否为质数,如果不是质数,则继续判断并输出该数及其后的三个质数。`isPrime`方法通过遍历从2到该数的平方根来检查是否存在能整除该数的因子,从而判断该数是否为质数。这种方法比简单的枚举法更高效,因为它减少了不必要的迭代次数。