找出1000以内所有完数,用java语言
时间: 2024-09-28 15:11:57 浏览: 47
找出1000以内所有的完美数(Perfect Number),可以用Java编写一个简单的程序来遍历这个范围内的每个数字,并检查它是否是完美的。完美数是指它的所有真因数(除了自身以外的因子)之和正好等于它本身的数。
下面是一个基本的Java代码示例:
```java
public class PerfectNumbers {
public static void main(String[] args) {
for (int i = 1; i < 1000; i++) {
int sum = 0;
for (int j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i && isPerfectNumber(i)) {
System.out.println(i + " is a perfect number.");
}
}
}
// 辅助函数,用于判断是否为质数
private static boolean isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return false;
}
return true;
}
// 判断是否为完美数
private static boolean isPerfectNumber(int num) {
return num != 1 && isPrime(num) && sumFactors(num) == num;
}
// 计算一个数的所有真因数之和
private static int sumFactors(int num) {
int sum = 0;
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum;
}
}
```
这个程序首先会计算每个数的因数之和,然后检查这个和是否等于原数,同时需要验证这个数是否为质数(因为只有非质数才有可能是完美数)。运行这段代码会在控制台打印出1000以内所有的完美数。
阅读全文