java 一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如,6的因子为1、2、3,而6=1+2+3,因此6是"完数"。 编程序找出N之内的所有完数。注意1不算完数
时间: 2024-11-10 12:26:10 浏览: 23
在Java中,你可以通过遍历并检查每个数是否等于其因子之和的方式来寻找N范围内的完数。这里是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.List;
public class PerfectNumbers {
public static void main(String[] args) {
int N = 100; // 可以更改为你想要查找的最大值
for (int i = 2; i < N; i++) { // 开始从2开始,因为1不是完数
if (isPerfect(i)) {
System.out.println("Number " + i + " is a perfect number.");
}
}
}
// 判断一个数i是否为完数
public static boolean isPerfect(int num) {
int sum = 0;
for (int factor = 1; factor <= Math.sqrt(num); factor++) {
if (num % factor == 0) {
sum += factor; // 因子可能是较小的数,也可能是两个数相乘的结果,所以需要加两次
if (factor != num / factor) {
sum += num / factor; // 如果还有另一个因子,也要添加进来
}
}
}
return sum == num && num > 1; // 确保排除掉1,因为它不符合完数定义
}
}
```
阅读全文