求1-1000完数,代码自己找不出来错误,题目是求1-1000完数。希望大家指点迷津,能帮忙指出错误,
第二个for循环判断完数那里改一下,改为从1开始,因为完数等于它真因子之和(除自身以外的约数,从1开始到他自身减1之内的范围的约数之和),修改如下:
参考资料:
什么是完数_百度知道
完全数_百度百科
#include <stdio.h>
int main(void){
int num;
int i;
int sum=0;
for(num=1;num<=1000;num++){
sum=0;
//https://zhidao.baidu.com/question/27474672.html
for(i=1;i<num;i++){
if(num%i==0){
sum=sum+i;
}
}
if(sum==num){
printf("%d\n",num);
}
}
return 0;
}
for (i = 1; i < num; i++)