Java一个自然数恰好等于它所有因子的和,则这样的数被称为完全数。例如,6=1+2十3。编写程序找出1000以内的完全数,并以因子和的形式列式表示。
时间: 2024-11-15 14:30:17 浏览: 21
在Java中,我们可以编写一个程序来寻找1000以内的完全数。首先,我们需要创建一个函数来检查一个数是否是完全数,然后遍历这个范围内的每个数字,判断其是否满足条件。以下是实现该功能的一个简单示例:
```java
public class Main {
public static void main(String[] args) {
for (int i = 2; i <= 1000; i++) {
if (isPerfectNumber(i)) {
System.out.println("完全数 " + i + " 的因子和为: " + sumFactors(i));
}
}
}
// 判断一个数是否是完全数
public static boolean isPerfectNumber(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
sum += i;
if (i != num / i) { // 如果不是自身因子,还需要加上另一个因子
sum += num / i;
}
}
}
return sum == num && num > 1; // 如果sum等于num并且num大于1,则是完全数
}
// 计算给定数的所有因子之和
public static int sumFactors(int num) {
int sum = 1;
for (int i = 2; i <= num / 2; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum;
}
}
```
当你运行这段代码,它会输出1000以内所有的完全数以及它们各自因子的和。
阅读全文