一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如,6 的因子为1、2、3,而6=1+2+3,因此6 是“完数”。编程序找出1000之内的所有完数,
并按下面格式输出其因子:
6 its factors are 1,2,3
#include <stdio.h>
#include<stdlib.h>
#include<math.h>
bool f16(int num)
{
int arr[100]={0};
int index=0,sum=0,i;
for(i=1;i<num;i++)
{
if(num%i==0)
{
sum+=i;
arr[index++]=i;
}
}
if(sum==num)
{
printf("%5d its factors are ",num);
for(i=0;i<index;i++)
{
printf("%5d",arr[i]);
}
return true;
}
return false;
}
int main(void)
{
for(int i=0;i<=1000;i++)
{
if(f16(i))
printf("\n");
}
system("pause");
}
结果如图: