问题
完全数是它所有的真因子(即除了自身以外的约数)的和等于它本身。求1000以内的完全数。
分析
对每个给定范围的i,用j去除i,如果整除,则是i的因子。将真因子加起来并与i作比较就可以得到完全数。
代码
#include <stdio.h>
int main()
{
int i, j, k; //i为目标数,j为i的因子,k为因子和
for (i = 1; i <= 1000; i++)
{
k = 0; //计算每个i前将和置0
for (j = 1; j < i; j++)
{
if (i % j <1e-5)//如果j能整除i则是因子
{
k = k + j;
}
}
if (k == i)//作比较
{
printf("%d\n", i);
}
}
return 0;
}