java从键盘输入一个整数,判断其是质数还是合数,并输出结果
时间: 2025-02-02 20:13:45 浏览: 42
以下是一个Java程序,用于从键盘输入一个整数,判断其是质数还是合数,并输出结果:
```java
import java.util.Scanner;
public class PrimeChecker {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入一个整数: ");
int number = scanner.nextInt();
if (isPrime(number)) {
System.out.println(number + " 是一个质数。");
} else {
System.out.println(number + " 是一个合数。");
}
scanner.close();
}
public static boolean isPrime(int num) {
if (num <= 1) {
return false; // 0和1既不是质数也不是合数
}
if (num == 2) {
return true; // 2是质数
}
if (num % 2 == 0) {
return false; // 偶数大于2都不是质数
}
int sqrt = (int)Math.sqrt(num);
for (int i = 3; i <= sqrt; i += 2) {
if (num % i == 0) {
return false; // 能被整除,说明是合数
}
}
return true; // 都不是,说明是质数
}
}
```
这个程序的工作原理如下:
1. 使用`Scanner`类从键盘读取用户输入的整数。
2. 调用`isPrime`方法来判断输入的数字是质数还是合数。
3. `isPrime`方法的工作原理:
- 首先排除0和1,因为它们既不是质数也不是合数。
- 2是唯一的偶数质数,直接返回true。
- 排除其他所有偶数,因为它们都不是质数。
- 然后,只需检查从3到√num的所有奇数是否能整除num。如果能整除,说明是合数;否则,是质数。
4. 根据`isPrime`方法的返回值,输出相应的结果。
这个程序可以有效地判断一个数是质数还是合数,并且对于较大的数也能保持较好的性能。
阅读全文
相关推荐

















