例55:一個數如果恰好等于它的因子之和,這個數就稱為完數,C語言編程找出1000之內的所有完數,并輸出其因子,
解題思路:6的因子為1,2,3,而6=1+2+3,因此6是“完數”,1不用判斷,直接從2開始,因為1的因子只有1
源代碼演示:
#include<stdio.h>//頭檔案
int main()//主函式
{
int number,s,i;//定義變數
for(number=2;number<1000;number++)//for回圈
{
//直接從2開始
s=0;
for(i=1;i<number;i++)
{
//檢查i是否是m的因子
if((number%i)==0)
{
//如果是的話
s=s+i;
}
}
if(s==number)
{
printf("%d的因子為:",number);
for(i=1;i<number;i++)
{
if(number%i==0)
{
//判斷是否是因子,是的話就輸出
printf("%d ",i);
}
}
printf("\n");//換行
}
}
return 0;//主函式回傳值為0
}
編譯運行結果如下:
6的因子為:1 2 3
28的因子為:1 2 4 7 14
496的因子為:1 2 4 8 16 31 62 124 248
--------------------------------
Process exited after 0.08837 seconds with return value 0
請按任意鍵繼續. . .
C語言找出1000以內的所有完數
更多案例可以公眾號:C語言入門到精通
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/246628.html
標籤:其他
上一篇:C# 插入排序
下一篇:基于FPGA的TDC設計
