一个数如果恰好等于它的因数(因数:整数a除以整数b(b≠a)的商正好是整数而没有余数,我们就说b是a的因数)之和,这个数就称为 “完数”。例如6=1+2+3,6为完数。编程找出1000以内的所有完数。

问题描述:

我解不了,难倒了
一个数如果恰好等于它的因数(因数:整数a除以整数b(b≠a)的商正好是整数而没有余数,我们就说b是a的因数)之和,这个数就称为 “完数”。例如6=1+2+3,6为完数。编程找出1000以内的所有完数。



public class A {
    public static void main(String[] args) {
        int i, j;
        for (i = 1; i <= 1000; i++) { // 判断一千以内的完数
            int sum = 0;
            for (j = 1; j < i; j++) {
                if (i % j == 0)// 判断i的因子
                    sum = sum + j;
            }
            if (sum == i) // 判断该数因子的和是否为完数
                System.out.println(i);// 6 28 496
        }
    }
}