如果二个数所有真因子(即除了自身以外的约数)的和怡好等于其本身的自然数,则这个数为完数。编写程序求1000以内的所有完数。利用java
时间: 2024-09-25 18:13:20 浏览: 32
在Java中,我们可以编写一个循环程序来寻找1000以内的所有完数。完数的特性意味着我们需要计算每个数的所有正因子之和,并判断是否等于该数本身。以下是简单的Java代码实现:
```java
public class Main {
public static void main(String[] args) {
for (int i = 1; i <= 1000; i++) {
if (isPerfectNumber(i)) {
System.out.println("Number " + i + " is a perfect number.");
}
}
}
// 定义函数检查一个数是否是完数
public static boolean isPerfectNumber(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
// 如果i是因子,那么它的另一半也是因子(因为num是合数)
sum += i;
if (i != num / i) { // 避免重复添加相同的因子
sum += num / i;
}
}
}
return sum == num && num > 1; // 只有大于1的数才可能是完数
}
}
```
运行上述程序后,它会打印出1000以内所有的完数。
阅读全文