/* 一个数如果恰好等于他的因子之和,这个数就是完数,例如:6=1+2+3,编程找出1000以内所有的完数 */ class 完数 { public static void main(String[] args) { //循环找出1~1000. for (int i = 1; i <= 1000 ; i++) { //打标记,初始化因子和为0,计算每个数的因子和之前都要初始化 int sum = 0; //找出每个数的因子,并求和 for (int j = 1; j < i; j++) {//为了提高效率可以写成for (int j = 2;j <= i / 2; j++) if (i % j == 0){ sum += j; } } //如果该数与该数的因子之和相等,该数就是完数,并输出 if (i == sum){ System.out.println(i); } } } }