java从键盘上输入一个整数,判断该数是否是完全数。完全数是指其所有因数(包括1但不包括其本身)的和等于该数自身的 数。例如(28=1+2+7+14)
时间: 2024-10-10 16:10:03 浏览: 24
java程序判断输入数据是否为完全数
5星 · 资源好评率100%
在Java中,你可以编写一个简单的程序来判断一个整数是否是完全数。首先,你需要从用户那里获取输入,然后计算并验证这个数字的所有因数之和是否等于它本身。以下是一个基本的步骤:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = scanner.nextInt(); // 获取用户输入
if (isPerfectNumber(num)) {
System.out.format("%d 是一个完全数.", num);
} else {
System.out.format("%d 不是一个完全数.", num);
}
scanner.close();
}
// 定义一个辅助函数来检查是否为完全数
public static boolean isPerfectNumber(int n) {
int sum = 0;
for (int i = 1; i <= Math.sqrt(n); i++) { // 只需要检查到n的平方根即可
if (n % i == 0) {
sum += i; // 如果能整除,i和n/i都是因子
if (i != n / i) { // 如果不是n自身,则再加一次n/i
sum += n / i;
}
}
}
return sum == n && n > 1; // 验证sum是否等于n,并排除1和n本身的特殊情况
}
}
```
阅读全文