用java 输入正整数n,求出从1到n的所有完全数并在控制台中输出,所谓完全数是指一个数,该数恰好等于它的因子之和,例如,6是一个完全数,因为6的因子为1、2和3,而6=1+2+3。
时间: 2024-09-16 08:03:18 浏览: 83
在Java中,我们可以创建一个函数来找出并输出所有小于或等于给定正整数n的完全数。下面是一个简单的实现步骤:
```java
public class Main {
public static void main(String[] args) {
int n = 100; // 你可以将这个值替换为你想要查找的任意正整数
for (int i = 1; i <= n; i++) {
if (isPerfectNumber(i)) {
System.out.println(i + " 是一个完全数");
}
}
}
// 检查一个数是否是完全数
private static boolean isPerfectNumber(int num) {
int sum = 1; // 初始化因子和为1,因为1一定是每个数的因子
for (int i = 2; i * i <= num; i++) { // 只需检查到sqrt(num)
if (num % i == 0) {
sum += i; // 如果i是因子,加到总和上
if (i != num / i) { // 如果i不是num除以i的商,也加上除数
sum += num / i;
}
}
}
return sum == num && num > 1; // 如果sum等于num,且num大于1,那么它就是完全数
}
}
```
在这个程序中,`isPerfectNumber` 函数用于检查一个数是否是完全数,如果返回true,说明当前数是完全数,并通过`System.out.println`将其打印出来。
阅读全文