题解 | #完全数计算#
完全数计算
http://www.nowcoder.com/practice/7299c12e6abb437c87ad3e712383ff84
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;//初始化完全数个数为0
for (int i = 4; i <= n; i++) {//遍历n以下,从4开始的每个数字(123因数都只有1和自身),判断是否为完全数
int sum = 1;//初始化真因子之和为1
for (int j = 2; j <= Math.sqrt(i); j++) {//质数成对出现,因此从2开始循环至开根即可获取到所有质数
if (i % j == 0) {//求解真因子之和
sum = sum + (i / j) + j;
}
}
if (sum == i) {//若真因子之和等于本身,完全数数量+1
count += 1;
}
}
System.out.println(count);
}
}
}