问:编程求出1000之内的所有完数
虽然看过答案,但还是不太理解,求详细不能再详细的解释😂
#include<stdio.h>
int main()
{
int sum=0,i,j; // 定义三个变量,sum是0,另外两个没有给值。
for(i=1;i<=1000;i++){ //一个for循环,确保是从1到1000
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循环的数据遗留
}
}