C語言簡單算法——找出完數

題目如下:
一個數如果恰好等於它的因子之和,這個數就稱爲“完數”。例如6=1+2+3.編程找出1000以內的所有完數。
1. 程序分析:
對n進行分解質因數,應先找到一個最小的質數k,然後按下述步驟完成:
(1)如果這個質數恰等於n,則說明分解質因數的過程已經結束,打印出即可。
(2)如果n<>k,但n能被k整除,則應打印出k的值,並用n除以k的商,作爲新的正整數你n,重複執行第一步。
(3)如果n不能被k整除,則用k+1作爲k的值,重複執行第一步。
2.程序源代碼:
main()
{
static int k[10];

int i,j,n,s;

printf("C語言研究中心 www.dotcpp.com\n");

for(j=2;j<1000;j++)
{
n=-1;
s=j;
for(i=1;i<j;i++)
{
if((j%i)==0)
{ n++;
s=s-i;
k[n]=i;
}
}
if(s==0)
{
printf(“%d is a wanshu”,j);
for(i=0;i<N;I++)
printf(“%d,”,k[i]);
printf(“%d\n”,k[n]);
}
}

}

此例題轉自C語言網,非原創。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章