#include<stdio.h> //经典18题.4 1000以内所有的完数
int main()
{
int i, j, m, sum;
printf("1000以内的完数有:\n");
for (m = 2; m <= 1000; m++)
{
j = m / 2;
sum = 0;
for (i = 1; i <= j; i++)
if (m%i == 0)
sum = sum + i;
if (sum == m)
printf("%5d\n", m);
}
return 0;
}
过程中遇到的问题
1、开始讲将两个if放在了一个for循环里面,导致最终多次输出了一个不是完数的数,就其原因,还是自己对代码的理解不够深,做不到让代码随着自己的意愿走;