HJ56 完全数计算

发布时间 2023-07-10 22:32:09作者: 白露~

1. 题目

读题

HJ54 表达式求值

 

 

考查点

 

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;
}

}

 

3. 总结