题解 | #汪汪汪汪汪?#

汪汪汪汪汪?

https://ac.nowcoder.com/acm/contest/18962/A

D-----亲密数

#include <iostream>
#include <valarray>

using namespace std;

//求因子和
int find(int x)
{
    int sum = 1, t = sqrt(x);
    for (int i = 2; i <= t; ++i)
        if (x % i == 0) 
            sum += i + x / i;
    if (t * t == x) 
        sum -= t;
    return sum;
}

int main()
{
    int l, r;
    cin >> l >> r;
    //输入边界检查
    if (l >= r)
    {
        cout << "-1" << endl;
        return 0;
    }
    for (int a = l, b, c; a <= r; ++a)
    {
        b = find(a);
        c = find(b);
        if (a == c && a < b && b <= r)
        {
            //找到第一个就结束
            cout << a << " " << b << endl;
            return 0;
        }
    }
    cout << "-1" << endl;
    return 0;
}
全部评论

相关推荐

投递字节跳动等公司10个岗位
点赞 评论 收藏
分享
1 收藏 评论
分享
牛客网
牛客企业服务