303. 完美數

題目:
• 設計說明:   
(1) 一個數如果恰好等於它的因數(不含數字本身)之和,這個數就稱為「完美數」。   
(2) 例如 6 = 1 + 2 + 3 ,因 1、2 與 3 都是 6 的因數,因而 6 是完美數。   
(3) 請設計一程式,找出 1000 以內的所有完美數。   (4) 顯示如執行結果參考畫面。

程式碼:

public class JPD03_303 {

 public static void main(String[] args) {
  // TODO Auto-generated method stub
  int i,j,k;
    int sum1=0,sum=0;
    System.out.print("1~1000中的完美數有:");
    for(k=6;k<=1000;k++){
     for(i=1;i*i<=k;i++){
      if(k % i == 0) { 
       sum += i;
       j =k/i; 
       sum1 +=j;
      }            
     }
     if(k*2 == (sum+sum1)){
      System.out.print(k+" ");
     }
        sum1=0;
        sum=0;//一定要歸0否則 sum的數字會一直加
    }

 }

}

留言

熱門文章