找到100以内的所有完数
完数:一个数的所有的真因子(即除了自身以外的约数)的和,恰好等于它自身
1不是完数
#include<stdio.h>
#include<math.h>
int main()
{
int n = 0;
int j = 0;
int i = 0;
printf("输出100以内的完数:\n");
for (i = 2; i <= 100; i++)
{
int sum = 0;
int nn = sqrt(i);
for (j = 2; j <=nn; j++)
{
if (i % j == 0)
{
n = i / j;
sum = n + j + sum;
}
}
if ((sum+1) == i)
{
printf("%3d ",i);
}
}
printf("\n");
return 0;
}
输出结果: