如果一个数恰好等于它的因子之和,则这个数称为完数,用JAVA编写一个程序求1000之内的所有完数
时间: 2024-09-19 19:10:55 浏览: 43
完数是指一个正整数恰好等于其所有正因数(包括1和它本身)之和。在Java中,我们可以创建一个循环来遍历1到1000之间的每个数字,并检查它是否满足完数条件。下面是一个简单的Java程序示例:
```java
public class PerfectNumbers {
public static void main(String[] args) {
for (int i = 1; i <= 1000; i++) {
if (isPerfectNumber(i)) {
System.out.println("找到一个完数: " + i);
}
}
}
// 检查一个数是否是完数
public static boolean isPerfectNumber(int num) {
int sum = 1;
for (int factor = 2; factor * factor <= num; factor++) { // 只需检查到sqrt(num)
if (num % factor == 0) {
sum += factor;
if (factor != num / factor) { // 如果因子不是最大因数,也加上另一个因子
sum += num / factor;
}
}
}
return sum == num && num > 1; // 判断sum是否等于num并且num大于1,因为1不是完数
}
}
```
运行这个程序,它会打印出1000以内所有的完数。
阅读全文