題目:
一個數如果恰好等於它的因子之和,這個數就稱為"完數"
(因子:除去這個數本身正的約數)
例如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+"個"); } }
