#include <stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 1000
int cal_factor(int a);
int cal_sum(int data[],int m);
int main()
{
int number;
printf("1000以内的所有完数如下所示:\n");
for(number=1;number<=1000;number++)
{
if(cal_factor(number))
printf("%d\n",number);
}
return 0;
}
int cal_factor(int a)//因子就是所有可以整除这个数的数,不包括这个数自身. 注意与质因数分解的区别
{
int i;
int sum=0;
for(i=1;i<=a/2;i++)
if(a%i==0)
sum+=i;
if(sum==a)
return 1;
else
return 0;
}
一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如:6=1+2+3, 编程找出1000以内的所有完数。
最新推荐文章于 2019-10-24 13:41:27 发布