用JAVA编写一个1000以内的所有完数
时间: 2024-10-14 11:07:11 浏览: 25
JAVA练习题
在Java中,一个完数是指一个数的所有真因数(除了自身以外的正因数)之和等于该数本身的整数。我们可以编写一个函数来检查每个数是否为完数,并在1到1000范围内找出所有的完数。以下是代码示例:
```java
import java.util.ArrayList;
import java.util.List;
public class PerfectNumbers {
public static void main(String[] args) {
List<Integer> perfectNumbers = findPerfectNumbers(1000);
for (int number : perfectNumbers) {
System.out.println(number);
}
}
// 函数用于查找1到指定范围内的完美数
public static List<Integer> findPerfectNumbers(int limit) {
List<Integer> perfects = new ArrayList<>();
for (int i = 1; i <= limit; i++) {
int sum = 0;
for (int factor = 1; factor < i; factor++) {
if (i % factor == 0) {
sum += factor;
}
}
if (sum == i && !perfects.contains(i)) { // 确保不是已经找到过的完美数
perfects.add(i);
}
}
return perfects;
}
}
```
当你运行这个程序,它会输出1000以内所有的完数。
阅读全文