求出1000之内的完数。这段程序怎么简化一下。谢谢
一个数如果恰好等于它的所有因子之和就称之为“完数”。例如,6=1+2+3,因此6是“完数”。编程找出1000之内的所有完数,输出格式为:6 its factors are 1 2 3.
我的程序如下,哪位大侠帮我简化一下啊,感觉处理输出的那几个语句似乎不够简练。谢谢
main()
{
int i,n,sum=0;
for (n=2;n<=1000;n++,sum=0)
{for (i=1;i<=n/2;i++)
if (n%i==0) sum=sum+i;
if (n==sum) {printf("%3d its factors are ",sum);
for (i=1;i<=n/2;i++)
if (n%i==0) printf ("%3d ",i);
printf("\n");}}
printf("\n");
}