/*一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程
找出1000以内的所有完数。*/
main()
{
static int k[10];
int i,j,n,s;
for(j=2;j<1000;j++)
{
n=-1;//为什么是-1?
s=j;
for(i=1;i<j;i++)
{if((j%i)==0)
{ n++;
s=s-i; // 为什么要减去?
k[n]=i;//数组为什么要赋值?
}
}
if(s==0)
{printf("%d is a wanshu: ",j);
for(i=0;i<n;i++)
printf("%d,",k[i]);//这个是什么?
printf("%d\n",k[n]);//这个又是什么?
}
}
}
很显然楼主没有基础,而且对解决因数问题没思路,我先说下思路:采用遍历方式,从0-1000一个个地去试。
如果一个数j是因数,就放进数组k中。
注:目测楼主的代码应该无法解决问题。