输入正整数n,求出从1到n的所有完全数并在控制台中输出,所谓完全数是指一个数,该数恰好等于它的因子之和,例如,6是一个完全数,因为6的因子为1、2和3,而6=1+2+3。用java 编写
时间: 2024-09-13 19:14:15 浏览: 40
在Java中,你可以编写如下的代码来找出并输出从1到n的所有完全数:
```java
public class PerfectNumbers {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个正整数:");
int n = scanner.nextInt();
for (int i = 1; i <= n; ++i) {
if (isPerfectNumber(i)) {
System.out.println("数字 " + i + " 是一个完全数");
}
}
scanner.close();
}
// 定义判断是否为完美数的辅助函数
private static boolean isPerfectNumber(int num) {
int sum = 0;
for (int factor = 1; factor < num; ++factor) {
if (num % factor == 0) {
sum += factor;
}
}
return sum == num && num != 1; // 因为1不是完美数
}
}
```
在这个程序中,`isPerfectNumber` 函数用于检查一个数是否为完美数,通过遍历其所有因子并将它们加起来,如果得到的结果等于原数并且排除了1(因为1的因子只有它自身,不符合完美数定义),则返回`true`。
阅读全文