亲密数

亲密数:

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

解题思路:

利用for循环遍历a从1取到3000,循环内利用循环判断a的因子并且用b储存a的因子之和,n储存b的因子之和,条件判断是否满足,满足则输出

代码:

#include<iostream>

using namespace std;

int main()

{

    int a,i,b,n;

    cout<<"There are following friendely--numbers pair smaller than 3000:"<<endl;

    for(a=1;a<3000;a++)

    {

        for(b=0,i=1;i<=a/2;i++)

        {

            if(a%i==0)

                b+=i;

        }

        for(n=0,i=1;i<=b/2;i++)

        {

            if(b%i==0)

                n+=i;

        }

        if(n==a&&a<b)

            cout<<a<<"--"<<b<<"   ";

    }

    return 0;

}

 

posted @ 2023-04-24 12:06  不如喝点  阅读(76)  评论(0编辑  收藏  举报