找出1000內所有的完數(c語言)


問題描述

編算法找出1000以內所有完數。
完數:其因數(因數不含自身)之和=自身的數。
例如:28的因子為1、2、4、7,14,而28=1+2+4+7+14。因此28是“完數”。編算法找出1000之內的所有完數,並按下面格式輸出其因子:28 it’s factors are 1,2,4,7,14。

問題分析

1、這里不要質因數。

2、每個因數只記一次,如8的因數為1,2,4。

算法設計

1>頂層算法

for(i=2;i<n;i++)
  {      判斷i是否是“完數”;
         如果是“完數”,則按格式輸出;}

 

2>判斷i是否是完數

s=1
for(j=2;j<i;j=j+1)
   if (i mod j=0)   s=s+j;   /*j是i的因數*/
If (s=i)   //i是“完數”;

 

完整代碼如下:

#include<stdio.h>
int main(){
    int n,i,sum;
    for(n=1;n<1000;n++){
        sum=0;
        for(i=1;i<n;i++){
            if(n%i==0){
                sum+=i;
            }
        }
        if(sum==n){
            printf("%d的因數為",sum);
            for(i=1;i<n;i++){
                if(n%i==0){
                    printf("%d,",i);
                }
            }
            printf("\n");
        }
    }
}

 


免責聲明!

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



猜您在找 找出1000以內的所有完數 【C語言】創建一個函數,判斷某一正整數是否為完數,並調用這個函數找出1000以內所有完數 【JAVA習題八】一個數如果恰好等於它的因子之和,這個數就稱為"完數"。例如6=1+2+3.編程 找出1000以內的所有完數。 一個數如果恰好等於它的因子之和,這個數就稱為 "完數 "。例如6=1+2+3.編程 找出1000以內的所有完數。 編程題:一個數如果恰好等於它的因子之和,這個數就稱為 "完數 "。例如6=1+2+3.編程 找出1000以內的所有完數。 一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如6=1+2+3。編程找出1000以內的所有完數。 題目:如果一個數恰好等於它的因子之和,這個數就稱為“完數”。例如:6=1+2+3,請找出1000以內的所有的完數。 一個數如果恰好等於它的因子之和,這個數就稱為“完數”例如,6的因子為1,2,3,而6=1+2+3,因此6是“完數”。編程序找出1000之內的所有完數,並按下面格式輸出其因子: 一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如,6的因子為1,2,3,而6=1+2+3,因此6是“完數”。編程序找出1000之內的所有完數,並按下面格式輸出其因子 【Python3練習題 014】 一個數如果恰好等於它的因子之和,這個數就稱為“完數”。例如6=1+2+3。編程找出1000以內的所有完數。
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM