输出100000以内的所有完全数。如果一个数恰好等于他的所有真因子(除了自身以外的约数)的和。例如6=1+2+3.
时间: 2024-11-13 11:18:58 浏览: 5
要找出100000以内的所有完全数,我们可以编写一个简单的程序,该程序遍历并检查每个数是否是完全数。完全数的定义是它的所有正因数(除了本身之外)之和正好等于该数本身。这里有一个Java代码示例:
```java
public class PerfectNumbers {
public static void main(String[] args) {
for (int i = 2; i <= 100000; i++) {
if (isPerfectNumber(i)) {
System.out.println("The number " + i + " is a perfect number.");
}
}
}
// 判断是否为完全数的方法
private static boolean isPerfectNumber(int num) {
int sum = 1; // 包含1在内的因子和
for (int j = 2; j * j <= num; j++) { // 只需检查到sqrt(num)
if (num % j == 0) {
sum += j;
if (j != num / j) { // 如果不是平方根,则还要加上另一个因子
sum += num / j;
}
}
}
return sum == num && num != 1; // 完全数不包括1
}
}
```
在这个程序中,`isPerfectNumber()` 方法用于检查给定的数字 `num` 是否为完全数。我们只用检查到 `num` 的平方根,因为大于 `sqrt(num)` 的因子都是成对出现的,所以没有必要单独计算它们。
运行这段代码后,它会打印出100000以内所有的完全数。
阅读全文