c编程判断完数

2012-11-01 09:12:12 · 作者: · 浏览: 694

    程序要求:完数,即完美数,一个数字如果恰好等于除它本身之外的因子之和,例如:6=1+2+3。求出1~100之间的所有完数,并打印出该数的因数。

    程序如下:

    #include <stdio.h>

    #include <stdlib.h>

    int main()

    {

    int i;

    for(i=0;i<100;i++)

    wanshu(i);

    return 0;

    }

    int wanshu(int i)

    {

    int j;

    int k=0;

    int sum=0;

    int f[100];

    for(k=0;k<100;k++)

    f[k]=0;

    for(j=1;j<i;j++)

    {

    if(i%j==0)

    {

    f[k]=j;

    sum+=j;

    k++;

    }

    }

    if(sum==i)

    {

    printf("%d 是完数\n",i);

    printf("它的因数为:\n");

    for(k=0;k<100;k++)

    {

    if(f[k]!=0)

    printf("%d\n",f[k]);

    }

    }

    else

    sum=0;

    }