题解 | #完全数计算#
完全数计算
https://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
import java.util.Scanner;
import java.io.*;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
String str = "";
while((str = reader.readLine()) != null){
int num = Integer.parseInt(str);
int count = 0;
// 不是偶数的话,不可能是
for(int i=6;i<=num;i+=2){
int sum = 0;
for(int j=2;j<=Math.sqrt(i);j++){
if(i%j == 0){
// 直接加上两个因子,提高效率
sum = sum + j + i/j;
}
}
// 加上刚开始的1
sum++;
if(sum == i){
count++;
}
}
System.out.println(count);
}
}
}

查看10道真题和解析