个数如果恰好等于它的因子之和,这个数就称为“完数”。编写应用程序求1000之内的所有完数。用Java完成
时间: 2024-09-28 19:07:35 浏览: 37
Java求1000之内的所有完数
5星 · 资源好评率100%
在Java中,我们可以创建一个简单的程序来找出1000范围内的所有完数。完数也被称为完美数,是指一个正整数的所有真因数(除了自身以外的因子)加起来正好等于它本身的数。以下是实现这一功能的Java代码:
```java
public class PerfectNumbers {
public static void main(String[] args) {
int limit = 1000;
for (int i = 6; i <= limit; i++) { // 所有大于5的偶数都是合数,从6开始检查
if (isPerfectNumber(i)) {
System.out.println("The perfect number within the range is: " + i);
}
}
}
// 辅助方法,用于判断一个数是否为完数
public static boolean isPerfectNumber(int num) {
int sum = 1; // 包含1作为每个数的一个因子
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
// 如果i是因子,那么num/i也是因子,我们只计算一次
if (i * i != num) {
sum += i + num / i;
} else {
sum += i;
}
}
}
return sum == num && num > 1; // 检查sum是否等于num且num不是1(因为1不是完数)
}
}
```
当你运行这个程序,它会打印出1000范围内的所有完数。
阅读全文