完美数
问题:如果一个正整数恰好等于除了它本身以外的所有因子之和,则称该数为完美数,比如6=1+2+3,所以6就是一个完美数。请计算10000内的所以完美数之和,包含10000本身。
public static void main(String[] arg) { int sum=0; for (int i = 1; i <= 10000; i++) { int temp = 0;// 定义因子之和变量 for (int n = 1; n <i/2+1; n++) { //注意:n<=Math.sqrt(i)是错误的写法,这和素数是不一样的 if (i % n == 0) { temp += n;// 能被整除的除数则被加到temp中 } } if (temp == i) {// 如果因子之和与原数相等的话,说明是完数 sum+=i;// 求出总和 } } System.out.println(sum);
}