用Java编写:完全数是一些特殊的自然数,它的所有真因子(除自己以外的约数)的和恰等于本身。求1到n之间的所有完全数。
时间: 2024-10-22 11:14:42 浏览: 36
在Java中,我们可以编写一个程序来找出1到n范围内的所有完全数。这里我们使用循环遍历的方式,对于每个数,计算其小于它本身的因子之和,如果这个和等于原数,则它是完全数。以下是简单的代码实现:
```java
public class PerfectNumbers {
public static void main(String[] args) {
int n = 100; // 指定查找范围,默认为100,你可以更改这个值
for (int i = 1; i <= n; i++) {
if (isPerfect(i)) {
System.out.println("完全数 " + i);
}
}
}
// 判断是否为完全数的方法
public static boolean isPerfect(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) { // 如果i是num的因子
sum += i; // 加上i
if (i != num / i) { // 如果i不是num/i(防止重复计数)
sum += num / i; // 再加上num/i
}
}
}
return sum == num; // 如果sum等于num,返回true,否则返回false
}
}
```
运行这段代码,将会输出1到n范围内的完全数。
阅读全文