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

思路:对每个数字递增取余,对能取余的数进行加法运算

public class FindNum {
    public static void main(String[] args) {
        List<Integer> list = new ArrayList<Integer>();
        for(int i=1;i<=1000;i++) {
            //换一个数就从0开始加
            int sum = 0;
            for(int j=1;j<i;j++) {
                if(i%j ==0) {
                    list.add(j);
                    sum +=j;
                }
            }
            if(sum ==i) {
                System.out.print(i+"=");

                for(int k=0;k<list.size();k++) {
                    int a =(int) list.get(k);
                    System.out.print(a);
                    if(k<list.size()-1) {
                        System.out.print("+");
                    }else {
                        System.out.println();
                    }
                }
            }
            list.clear();
        }
        
    }
}

猜你喜欢

转载自www.cnblogs.com/squirrel-xie/p/11088284.html