java请用程序实现: 输入一个整数num,找出2(含) ~ num(含)中的所有完数,并输出
时间: 2024-05-04 08:16:01 浏览: 87
完数是指一个正整数,它的所有因子(除1外)之和等于它本身。比如6就是完数,因为6的因子有1、2、3,而1+2+3=6。
以下是Java程序实现:
```
import java.util.*;
public class PerfectNumber {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入一个整数num: ");
int num = input.nextInt();
List<Integer> perfectNumbers = new ArrayList<>();
for (int i = 2; i <= num; i++) {
int sum = 1;
for (int j = 2; j * j <= i; j++) {
if (i % j == 0) {
sum += j;
if (j * j != i) {
sum += i / j;
}
}
}
if (sum == i) {
perfectNumbers.add(i);
}
}
if (perfectNumbers.isEmpty()) {
System.out.println("2~" + num + "范围内没有完数。");
} else {
System.out.print("2~" + num + "范围内的完数有: ");
for (int p : perfectNumbers) {
System.out.print(p + " ");
}
}
}
}
```
运行示例:
```
请输入一个整数num: 10000
2~10000范围内的完数有: 6 28 496 8128
```
阅读全文