求1000以内的所有的完数java
时间: 2024-10-16 08:02:39 浏览: 27
在Java中,你可以编写一个简单的程序来找出1000以内的所有完美数。完美数是指它的所有正因数(除了自身以外)加起来正好等于这个数本身。以下是实现的一个例子:
```java
import java.util.ArrayList;
import java.util.List;
public class FindPerfectNumbers {
public static void main(String[] args) {
List<Integer> perfectNumbers = findPerfectNumbers(1000);
for (int num : perfectNumbers) {
System.out.println("1000以内完美数之一:" + num);
}
}
// 寻找1到指定范围内的完美数
public static List<Integer> findPerfectNumbers(int limit) {
List<Integer> result = new ArrayList<>();
for (int i = 1; i < limit; i++) {
int sum = 0;
for (int n = 1; n * n <= i; n++) {
if (i % n == 0) {
sum += n;
if (n != i / n) { // 避免重复计数
sum += i / n;
}
}
}
if (sum == i && !result.contains(sum)) {
result.add(i); // 只添加唯一的完美数
}
}
return result;
}
}
```
在这个代码里,我们首先创建了一个空列表来保存完美数。然后遍历1到1000之间的每一个数,对于每个数,我们会检查它的所有因数之和。只有当因数之和等于该数,并且之前没有发现过同样的完美数时,才会将它添加到结果列表中。
阅读全文