尋找完全數(C++)


【問題描述】

    輸入一個大於 1 的正整數 n,請你將大於 1 和小於或等於 n 的所有完全數輸出。所謂完全數就是因子(不算其本身)之和等於它本身的數。例如 1+2+4+7+14=28,所以 28 是完全數。如果有多個完全數,每兩個完全數之間用一個空格隔開,如果沒有,請輸出 0 。

【代碼展示】

# include<iostream>
using namespace std;
int main(){
  int n,s;
  cin >> n;
  for(int i=2;i<=n;i++){
    s=0;
    // 計算i因數的和
    for(int j=1;j<=i/2;j++){
    // 判斷i是不是合數
      if(i%j==0){
        s += j;
      }
    }
    // 注意if的位置
    if(s==i){
      cout << i << " ";
    }
  }
  return 0;
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM