完数就是因子之和等于数本身,比如6=1+2+3,求1000以内的完数程序
#include <stdio.h>
int main()
{
int i,j,sum,temp; //定义数,因子
sum=0;
for(i=2;i<=1000;i++)
{
temp=i;
for(j=1;j<i;j++)
{
if(i%j==0) //当I被J整除
{ //原数等于除完因子后的数
temp/=j; //把因子加到sum中
sum+=j;
}
}
if(sum==i) //因子相加和等于原数I时
printf("It's a Perfect n:%d\n",i);
}
getchar(); //回车结束程序
getchar();
return 0;
}
这个程序有什么问题?
不要从编程百例中把那个复制出来
是要你找出这个的问题
指出错误在哪
正确的应当是什么
谢谢
这样只能显示一个6,如果是28的话就只能算出1+2+2+7=12,而不是1+2+4+7+14=28,这个程序稍加修改是否可以改成正确的?