C语言技能:循环结构在程序开发中的应用

问:编程求出1000之内的所有完数

虽然看过答案,但还是不太理解,求详细不能再详细的解释😂


#include<stdio.h>
int main()
{
    int sum=0,i,j; // 定义三个变量,sum是0,另外两个没有给值。
    for(i=1;i<=1000;i++){ //一个for循环,确保是从11000
        for(j=1;j<i;j++){ //对于每个数,从1到比它小的所有数循环
            if(i%j==0){ //判断 出现在 “对于每个数,从1到比它小的所有数循环” 中的数是否能整除这个数
                sum+=j; //如果能整除,就加起来,开始累加。
            }
        }
        if(i==sum){ //完数的概念,一个数恰好等于它的因子数之和。这里判断一下
            printf("完数:%d\n",i); //输出
        }
        sum=0; //sum归0,避免上一次for循环的数据遗留
    }     
 }