一个数如果恰好等于它的因子之和,这个数就称为完数。例如6的因子是1、2、3,而6=1+2+3,因此6是完数。编程序找出1000之内的所有完数,并输出它们的因子。
#include<stdio.h>
#include<string.h>
int num[500];
int perfect(int m)
{
int sum=0,cnt=0;
for(int i=1;i<=m-1;i++)
{
if(m%i==0)
{
sum+=i;
num[cnt++]=i;
}
}
if(sum==m)
{
int flag=0;
printf("%d its factors are ",m);
for(int j=0;j<cnt;j++)
{
if(flag==1)printf(",");
else flag=1;
printf("%d",num[j]);
}
printf("\n");
}
}
int main()
{
for(int i=1;i<=1000;i++)
{
perfect(i);
}
return 0;
}