完数

一、问题描述

求某一范围内完数的个数。

如果一个数等于它的因子之和,则称该数为完数。列如,6的因子为1,2,3而1+2+3=6因此6是完数。

二、设计思路

    两个循环嵌套,最外层是范围,内层是找数的因子的循环。可以用数求余是否等于0来判断是否为因子,

三、流程图

 

四、伪代码

Int n

for(循环n次)

{

for(循环n-1次)

{

   找因子

   因子求和

 满足条件因子相加等于数

 输出结果

}

}

五、代码实现

#include<iostream>

using namespace std;

int main()

{

       int n;

       cout<<"请输入范围n"<<endl;

       cin>>n;

       for(int i=2;i<=n;i++)

       {

              int sum=0;

              for(int j=1;j<i;j++)

              {

                     if(i%j==0)

                     {

                            sum+=j;

                     }

              }

                     if(sum==i)

              {

                     cout<<i<<"是完数"<<endl;

              }

      

       }

}

posted @ 2023-05-08 09:29  八千里路云和月色  阅读(73)  评论(0)    收藏  举报