JAVA编写方法输出n以内的所有完数. 完数是指如果一个数恰好等于他的因子之和, 则这个数就是完数. 例如: 6的因子是1,2,3. 1+2+3=6, 因此6是完数.

问题描述:

编写方法输出n以内的所有完数. 完数是指如果一个数恰好等于他的因子之和, 则这个数就是完数. 例如: 6的因子是1,2,3. 1+2+3=6, 因此6是完数.

// 如果有帮助 采纳一下


public class Test {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        for(int i=2; i<= n; i++) {
            int b=0;
            for(int j=1; j<=i/2; j++)
            {
                if(i%j==0)
                {
                    b=b+j;
                }
            }
            if(b!=i) {
                b=0;
            }
            else {
                System.out.println(i);
            }
        }

    }
}