泽州二中历年录取线:一个C语言问题?在线等!

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/01 19:28:44
题目:如果一个数等于其所有真因子(不包括其本身)之和,则该数为完数,例如6的因子有1、2、3,且6=1+2+3,故6为完数,求2~1000中的完数。
没有答案的:
#include<stdio.h>
main()
{
int n,k,s=0;
for(n=2;n<=1000;n++)
{
for(k=1;k<n;k++)
if(n%k==0)s=s+k;
if(s==n)printf("%5d",n);
}
}

正确的:
#include<stdio.h>
main()
{
int n,k;
for(n=2;n<=1000;n++)
{
s=0;
for(k=1;k<n;k++)
if(n%k==0)s=s+k;
if(s==n)printf("%5d",n);
}
}