1. 程式人生 > >尋找“完數”

尋找“完數”

題目:一個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如6=1+2+3.程式設計 找出1000以內的所有完數。

題目分析:分別求出所有因數相加,與原數比較

	public static void perfectNum() {

		for (int i = 1; i <= 1000; i++) {
			//判斷完數
			if (feb(i)) {
				System.out.print(i + " ");
			}
		}
	}
	
	public static boolean feb(int k) {
		
		int sum=0;
		//1為完數 無須分解因數
		if (k == 1) {

			return true;
		}
		//分解因數並求和 
		for (int i = 1; i <= (k / 2); i++) {
			if (k % i == 0) {
				sum += i;
			}
		}
		//判斷是否和原數相等
		if(k==sum){
			return true;
		}
		else{
			return false;
		}
	}