1000以內完數c語言程式 C語言完數程式設計題目詳解

2021-10-19 15:20:47 字數 1219 閱讀 4644

首先看一下完數的概念:完數,即完美數,乙個數如果恰好等於除它本身外的因子之和,這個數就稱為完數。例如6=1+2+3.(6的因子是1,2,3)

題目概要:請寫乙個c語言程式,要求輸入乙個數字n輸出從1~n範圍內的所有完數,如果有則輸出1~n範圍內的所有完數。如果沒有,則輸出no!

解題思路:用乙個雙重for迴圈來遍歷每乙個數,外層迴圈來遍歷每乙個1~n範圍中的數字,內層迴圈來求出每乙個數的因子,並將其因子存入乙個陣列,以便對其因子進行求和判斷該數是不是完數,如果是完數,則將該數存入另乙個陣列以便輸出。該題目主要考察了對迴圈的使用。也可以使用while等迴圈方式解該題目。

程式**:

#include

#include

int main()

int n;

int i,j,sum,k,b[1000],w[1000],s=0,m;

printf("請輸入數字n:");

scanf("%d",&n);

for(i=n;i>0;i--)

sum=0,k=0;

for(j=1;j

if(i%j==0)

b[k]=j;

k++;

for(m=0;m

sum+=b[m];

if(sum==i)

w[s]=i;

s++;

if(s!=0)

for(i=0;i

printf("%d ",w[i]);

else

printf("no!");

return 0;

另一種簡介的寫法:

#include

int main()

int i,j,k=0,a[1000],t,n;

printf("請輸入數字n:");

1000以內完數c語言程式 C語言面試題(二)

接著上次來說,c語言面試題 一 當中大部分是一些概念和理解的東西 今天說一說實踐操作,有關c的經典程式。1 輸出9 9口訣。共9行9列,i控制行,j控制列。include stdio.h int main printf n 每一行後換行 2 古典問題 有一對兔子,從出生後第3個月起每個月都生一對兔子...

C語言 找出1000以內的所有完數

例55 乙個數如果恰好等於它的因子之和,這個數就稱為完數,c語言程式設計找出1000之內的所有完數,並輸出其因子。解題思路 6的因子為1,2,3,而6 1 2 3,因此6是 完數 1不用判斷,直接從2開始,因為1的因子只有1 源 演示 include 標頭檔案 intmain 主函式 if s nu...

找1000以內的完數

完數,是一些特殊的自然數,它所有的真因子 即除了自身以外的因子 的和,恰好等於它本身。所以這裡說明一下,1不是完數,因為1只有自身這乙個因子 第乙個完全數是6,第二個完全數是28,第三個完全數是496,後面的完全數還有8128 33550336等等。所以程式迴圈直接從數字2開始判斷 及執行結果如下 ...