題目:
一個數如果恰好等於它的因子之和,這個數就稱為"完數"
(因子:除去這個數本身正的約數)
例如6=1+2+3.編程 找出1000以內的所有完數
問題:
1.一個數他的所有因子如何求?
for(int i = 1;i <=1000;i++)//這1000個數中,每執行一次,得到一個數,要么存在完數,要么為0; { for(int j=1;j<i;j++) {//這個得到的結果是一個數的所有因子相加 if(i%j==0)//因子:除去這個數本身正的約數 factor+=j;//因子相加 } if(factor == i) {//如果這個因子之和等於它本身,則它是完數 System.out.println("完數為:"+i); count++; } factor=0; }
完整代碼:
package demo; public class Test15{ static int count; public static void main(String[] args) { int factor=0; for(int i = 1;i <=1000;i++)//這1000個數中,每執行一次,得到一個因子,要么存在,要么為0; { for(int j=1;j<i;j++) {//這個得到的結果是一個數的所有因子相加 if(i%j==0)//因子:除去這個數本身正的約數 factor+=j;//因子相加 } if(factor == i) {//如果這個因子之和等於它本身,則它是完數 System.out.println("完數為"+i); count++; } factor=0; } System.out.println("0到1000所有完數的為:"+count+"個"); } }