本帖最后由 huzhiqiang 于 2016-5-19 23:05 编辑
这是我自己刚刚写的,我自己没有答案,结果只有3个数,不知道对不对,但我自己觉得是可以的,你有没有答案哦
#include <stdio.h>
int main(int argc, const char * argv[]) {
for(int i = 1;i<1000;i++) { int sum=0;//sum用于存放因子之和 for(int j=1;j<i;j++) { if(i%j==0)//找到除了i自身以外的因子 { if(j*j==i)//如果俩因子相等,因子乘以2加入到sum中 sum=sum+2*j; else sum+=j;
} } if(sum==i)//如果因子等于这个数,那么这个数就是完数,输出完数 printf("%d\n",i);
}
return 0; }
|