C语言经典例题100例——C语言练习实例19解答(完数问题)

作者(出处):百宝箱工作室发布时间:2017年7月18日 20:10:15查阅量:203

题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”,例如6=1+2+3。编程找出1000以内的所有完数。

程序分析:请参照C语言练习实例14解答。

程序源代码:

#define N 1000
main()
{
    int i,j,k,n,sum;
    int a[256];
    for(i=2;i<=N;i++)
    {
        sum=a[0]=1;
        k=0;
        for(j=2;j<=(i/2);j++)
        {
            if(i%j==0)
            {
                sum+=j;
                a[++k]=j;
            }
        }
        if(i==sum)
        {
            printf("%d=%d",i,a[0]);
            for(n=1;n<=k;n++)
                printf("+%d",a[n]);
            printf("\n");
        }
    }
}

以上实例运行结果如下:

6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248
百宝箱网络工作室  版权所有  
站长QQ:1617818397  站长E-mail:1617818397@qq.com
Powered by www.baibaox.com  Copyright © 2011-2017
点击这里给我发消息