JAVA,编写程序求1000之内的所有完数
时间: 2024-10-08 11:09:56 浏览: 29
在Java中,我们可以编写一个简单的函数来寻找1000以内的完美数。完美数是一种特殊的自然数,它等于其所有正因子(包括1但不包括本身)之和。下面是一个实现这个功能的例子:
```java
public class PerfectNumbers {
// Function to check if a number is perfect or not
public static boolean isPerfectNumber(int num) {
int sum = 1;
for (int i = 2; i * i <= num; i++) { // Only checking up to sqrt(num), optimization
if (num % i == 0) {
sum += i;
if (i != num/i) { // Avoiding duplicate factors
sum += num/i;
}
}
}
return sum == num;
}
public static void findPerfectNumbersBelow1000() {
for (int i = 1; i < 1000; i++) {
if (isPerfectNumber(i)) {
System.out.println(i);
}
}
}
public static void main(String[] args) {
findPerfectNumbersBelow1000();
}
}
```
在这个程序中,`isPerfectNumber` 函数首先检查数字是否为完全平方数(因为非完全平方数不会有超过其平方根的因子),然后计算所有因子的和。如果因子之和等于原数,那么该数就是完美数。`findPerfectNumbersBelow1000` 函数则遍历1到999的每个数字,调用 `isPerfectNumber` 函数来检查它们。
阅读全文