题目描述
求正整数 22 和 𝑛n 之间的完全数(一行一个数)。
完全数:对于一个自然数,所有比它小的所有因数之和,等于它本身,它就是个完全数。如 6=1+2+36=1+2+3。
输入格式
输入 𝑛(𝑛≤10000)n(n≤10000)。
输出格式
一行一个数,按由小到大的顺序。
输入输出样例
输入 #1
10
输出 #1
6
输入 #2
100
输出 #2
6 28
代码实现:
import java.util.Scanner;
public class CompleteNum {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
completeNum(n);
}
public static void completeNum(int n) {
//取数操作
for (int i = 2; i <= n; i++) {
int sum = 0;
//检验这个数的因数
for (int j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
System.out.println(i);
}
}
}
}