1. 题目
读题
考查点
2. 解法
思路
代码逻辑
具体实现
public class HJ56 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
System.out.println(getPerfectNumCnt(n));
}
public static int getPerfectNumCnt(int n) {
int cnt = 0;
for (int i = 2; i <= n; i++) {
if (isPerfectNum(i)) {
cnt++;
}
}
return cnt;
}
public static boolean isPerfectNum(int n) {
int sum = 0;
for (int i = 1; i * i <= n; i++) {
if (n % i == 0) {
sum += i;
if (i * i < n && i != 1) {
sum += n / i;
}
}
}
return sum == n;
}
}