#include"stdio.h"
int main()
{
int a, i, sum = 0, b=0;//a记录因数之和,sum记录1000以内的完数之和,b记录个数
for (i = 1; i <= 1000; i++)
{
a = 0;//保证每次大循环a都为0;
for (int j = 1; j < i; j++)//小循环求因数
{
if (i % j == 0)
{
a += j;//记录因数之和
}
}
if (a == i)//判断因数之和是否等于原数
{
printf("%d是完全数\n", i);
sum+=i;
b++;
}
}printf("1000以内共有%d个完全数,这些完全数的和为%d", b, sum);
return 0;
}
运行结果如下 :
欢迎借鉴。