C++求编程求1000之内的所有完数。已有编程,求详细解析,小白完全看不懂

2024-10-28 06:21:00
推荐回答(2个)
回答1:

#include
using namespace std;
int main()
{
int i=1,n=1,sum=0;
while(n<=1000)//循环一千次
{
sum=0;
i=1;
while(i {
if(n%i==0)//求因子
sum=sum+i;//所有因子求和
i++;
}
if(i==sum)//当i==n,满足完数,即执行下一条语句
cout< n++;//每次执行+1
}

return 0;
}
解释大致参考注释,主要理解while循环语句

回答2:

#include
using namespace std;
int main()
{
int i=1,n=1,sum=0;
//遍历1到1000
while(n<=1000)
{
sum=0;
//初始化i
i=1;
//遍历比n小的数
while(i {
if(n%i==0)//能够整除 %取模
sum=sum+i; //累积可整除数的和
i++;
}
//判断是否相等,这里有错误吧,应该是n不是i
if(i==sum)
cout< n++;
}

return 0;
}