窮舉法求1000內所有完數
題目:
一個數如果恰好等於它的因子之和,這個數就稱為 "完數",
例如6=1+2+3。程式設計找出1000以內的所有完數。思路:
窮舉法(簡直就是萬能的存在~)
程式碼:
package day5;
public class Perfectnumber {
public static void main(String[] args) {
System.out.println("1000以內所有的完數有:");
for(int i=1;i<10000;i++){ //遍歷1000內的所有數
// 此for迴圈內,所有真因子直接相加。
for(int j=1;j<=i/2;j++){ //遍歷找到所有因子
if(i%j==0){ //如果等於零,則j是i的一個因子
}
}
if(t==i){ //當此處的判斷if跳出第二個for迴圈時,不用判斷是否所有真
}
}
}
}
總結:完數(Perfect number),又稱完美數或完備數,是一些特殊的自然數。它所
有的真因子(即除了自身以外的約數)的和(即因子函式),恰好等於它本身。如果
一個數恰好等於它的因子之和,則稱該數為“完數”。
窮舉法求完數,主要就是用兩個迴圈。外層迴圈遍歷可能為完數的數,內層迴圈
遍歷一個完數的所有的因子和。抓住完數的特徵,這個題就迎刃而解了。