现在的位置: 首页 > 综合 > 正文

HDU 2040 亲和数

2018年04月29日 ⁄ 综合 ⁄ 共 438字 ⁄ 字号 评论关闭

   很水的一道题,做这道题的时候,只要注意下真约数的概念就可以了,因为我们知道,真约数就是说这个数字原本的所有的约数出去本身后的约数,

比如说,6的约数是 1 2 3 6,而6的真约数是1 2 3,这就是在判约数的时候注意下等号的位置就行了。

# include<cstdio>
# include<iostream>
# include<cstring>

using namespace std;

# define MAX 600000

int a[MAX];

int f( int x )
    {
        int sum = 0;
        for ( int i = 1;i < x;i++ )
        {
            if ( x%i == 0 )
                sum+=i;
        }
        return sum;
    }


int main(void)
{
    int t;cin>>t;
    memset(a,0,sizeof(a));
    while ( t-- )
    {
        int a,b;
        cin>>a>>b;
        int m = f(a);
        int n = f(b);
        if ( m == b&&n == a )
            cout<<"YES"<<endl;
        else
            cout<<"NO"<<endl;

    }


    return 0;
}

【上篇】
【下篇】

抱歉!评论已关闭.