题目
问题描述
如果一个自然数的所有小于自身的因子之和等于该数,则称为完数。设计算法,打印1-9999之间的所有完数。
样例输出
思路
内层循环一直判断能否被除尽,能就累加,内层循环完判断是否等于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;
}