題目
問題描述
如果一個自然數的所有小于自身的因子之和等于該數,則稱為完數。設計算法,列印1-9999之間的所有完數。
樣例輸出
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnLxYDNzITNyEjM2AzMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
思路
内層循環一直判斷能否被除盡,能就累加,内層循環完判斷是否等于i,等于就輸出i。
對于完數我不知道還有沒有更優的解,目前隻想到這種。
代碼
#include <stdio.h>
#include<math.h>
int main()
{
int i,j;
for(i=1;i<10000;i++){
int num=0;
for(j=1;j<i;j++){
if(i%j==0){
num+=j;
}
}
if(num==i)
printf("%d\n",i);
}
return 0;
}