壹個數,所有的真因子(即除了自身以外的約數)的和,恰好等於本身,稱為完數。
所以,要確認是否為完數,只要把所有真因子相加判斷即可。
於是,這個題目的編程思路為:
1 遍歷1~1000;
2 對每個數,判斷是否為完數,如是,則輸出;
3 程序結束。
代碼如下:
#include?<stdio.h>int?main()
{
int?n,?i,?s;
for(n?=?1;?n?<=?1000;?n?++)
{
s?=?0;
for(i?=?1;?i?<=?n/2;?i?++)
if(n%i?==?0)?s+=?i;//是真因子,累加。
if(s?==?n)?//是完數。
printf("%d,",n);//輸出。
}
return?0;
}