程序要求:完数,即完美数,一个数字如果恰好等于除它本身之外的因子之和,例如: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;
}