亲密数

一、问题描述

    如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。

二、设计思路

    求A的全部因子和,记为sum,再求sum的全部因子的和sum1,判别sum1是否等于A

三、流程图

 

四、伪代码

输入范围3000

找出A的全部因子和sum

找出sum的全部因子和sum1

判别sum1是否等于A

等于就是亲密数

五、代码实现

#include<iostream>

using namespace std;

int main()

{

      

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

       {

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

              {

                     int sum=0;

                     int sum1=0;

                     if(i%j==0)

                     {

                            sum+=j;

                            for(int k=1;k<sum;k++)

                            {

                                   if(sum%k==0)

                                   {

                                          sum1+=k;

                                   }

                            }

                            if(sum1==i)

                            {

                                   cout<<i<<" ";

                            }

                     }

              }

       }

 

}

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