代码实现:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.第二个完全数是28, //它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加, //编程找出1000以内的所有完数。

import java.util.ArrayList;
import java.util.List;
//一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.第二个完全数是28,
//它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,
//编程找出1000以内的所有完数。
public class Test {
	public static void main(String[] args) {
		System.out.print("完数有:");
		for (int x = 1; x < 1000; x++) {
			int k = x;
			List<Integer> sb = new ArrayList<>();
			for (int i = 2; i <= k; i++) {
				if (i == k) {
					break;
				}
				if (k % i == 0) {
					sb.add(i);
				}
			}
			int sum = 1;
			for (Integer ss : sb) {
				sum = sum + ss;
			}
			if (sum == x) {
				System.out.print(x + " ");
				sum = 1;
			}
		}
	}
}

 

posted on 2017-03-09 19:41  LoaderMan  阅读(918)  评论(0编辑  收藏  举报

导航