找程序错误

来源:百度知道 编辑:UC知道 时间:2024/05/24 17:56:28
一个数如果恰好等于它的因子数之和,这个数就称为完数。eg:6的因子为1、2、3,而6=1+2+3,因此6是完数。编程序找出1000之内的所有完数,并按下面各式输出:6 its factors are 1、2、3

main()
{
int i,k,s=0;
for (i=1;i<1000;i++)
{
for (k=1;k<i;k++)
if ((i%k)==0)
s=s+k;
if (i==s)
{
printf("%d its factors are ",i);
for (k=1;k<i;k++)
if ((i%k)==0)
printf("%d,",k);
printf("\n");
}
}
}

main()
{
int i,k,s=0;
for (i=1;i<1000;i++)
{
s=0;//在这里添加一句就好了,每次初始化s
for (k=1;k<i;k++)
if ((i%k)==0)
s=s+k;
if (i==s)
{
printf("%d its factors are ",i);
for (k=1;k<i;k++)
if ((i%k)==0)
printf("%d,",k);
printf("\n");
}
}
}