解题思路:
i
表示j
的约数
j
表示完全数
先判断这个数的约数, 即j % i == 0
操作, 若是约数, 则sum += i
再判断这个数是不是完全数, 若sum == j
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
int count = 0;
for(int j = 1; j <= n; j++){//表示从第一个数开始遍历
int sum = 0;
for(int i = 1; i < j; i++){//得出 j 的约数
if(j % i == 0){
sum += i;
}
}
if(sum == j){//若和等于本身, 个数count++
count++;
}
}
System.out.println(count);
}
}
}