Java_求1000以内的所有完数(一个数如果恰好等于它的因子之和,这个数就称为 "完数 ")

package t8;

import java.util.ArrayList;
import java.util.List;

public class Test {
	/**
	 * 
	 * @param bound 上限边界
	 * @return	结果列表
	 */
	public static List<Integer> test(int bound){
		List<Integer> list=new ArrayList<Integer>();
		for(int i=2;i<=bound;i++) {
			if(isCompleteNum(i)) {
				list.add(i);
			}
		}
		return list;
	}
	/**
	 * 判断一个数是否为完数
	 * @param num
	 * @return
	 */
	private static boolean isCompleteNum(int num) {
		int sum=0;
		for(int i=2;i<=Math.sqrt(num);i++) {
			if(num%i==0) {
				sum=sum+i+num/i;
			}
		}
		if(sum+1==num) {
			return true;
		}
		return false;
	}
}

你可能感兴趣的:(算法入入门(杂),java,算法)