写一个java程序,读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数。
时间: 2023-05-28 11:02:22 浏览: 186
Java求1000之内的所有完数
5星 · 资源好评率100%
完数指一个正整数等于它的因子之和(除本身之外)。
实现思路:
1. 定义一个方法isPerfectNumber(int num),用来判断一个数字是否是完数。
2. 在主方法中,获取用户输入的n和m,使用for循环遍历[n,m]范围内的每个数字,对于每个数字判断它是否是完数,如果是完数则输出。
代码如下:
```java
import java.util.Scanner;
public class PerfectNumbers {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("请输入n和m(1<=n<m<1000):");
int n = in.nextInt();
int m = in.nextInt();
for (int i = n; i <= m; i++) {
if (isPerfectNumber(i)) {
System.out.println(i);
}
}
}
// 判断一个数字是否是完数
private static boolean isPerfectNumber(int num) {
int sum = 0;
for (int i = 1; i < num; i++) {
if (num % i == 0) {
sum += i;
}
}
return sum == num;
}
}
```
测试:
输入:
```
请输入n和m(1<=n<m<1000):1 1000
```
输出:
```
6
28
496
```
阅读全文