一个数如果恰好等于它的因子之和(包括1,但不包括这个数本身),这个数就称为“完数”。编算法找出1000以内所有完数。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i, j, k, s, a[20];
for(i = 1; i <= 1000; i++) //1-1000内的数
{
s = 1;
k = 0;
for(j = 2; j < i; j++) //从2开始找因子
{
if(i % j == 0)
{
s = s +j; //将因子累加
a[k] = j; //将因子存在数组里必要时可以输出
k++;
}
}
if(i == s)
{
printf("%d ", i);
}
}
}