题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3。编程找出1000以内的所有完数。

public class Test {

    public static void main(String[] args) {
        // 第一层循环打印1000以内的数
        for (int i = 1; i <= 1000; i++) {
            // 定义保存因子之和的数
            int flag = 0;
            // 第二层循环列出所有的被除数
            for (int m = 1; m < i; m++) {
                // 如果他们的余数为0则将所有的被除数相加,结果保存起来
                if (i % m == 0) {
                    // 相加所有被除数
                    flag += m;
                }
            }
            // 判断如果被除数的和等于除数,则打印
            if (flag == i) {
                System.out.println(i);
            }
        }
    }
}

你可能感兴趣的:(每日一练)