题解 | #完全数计算# 平方根降低循环次数
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
while (in.hasNextInt()) { // 注意 while 处理多个 case
int a = in.nextInt();
int res = 0;
for (int i = 6; i <= a; i++ ) {
int n = (int) Math.sqrt(i);
int sum = 0;
for (int j = 1; j <= n; j++) {
if (i % j == 0) {
sum += j;
if (i / j != j && i / j != i) {
sum += i / j;
}
}
}
if (sum == i) {
res ++;
}
}
System.out.println(res);
}
}
}

查看20道真题和解析