1 条题解

  • 0
    @ 2024-12-30 19:51:01

    变形可得 (a+1)(b+1)=n+1(a+1)(b+1)=n+1,枚举 n+1n+1 的因数即可。

    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        long long n;
        cin >> n;
        n ++;
        int w = sqrtl(n + 0.1);
        bool ok = false;
        for (int i = 2; i <= w; i++)
            if (n % i == 0)
            {
                cout << i - 1 << ' ' << n / i - 1 << endl;
                ok = true;
            }
        for (int i = w; i >= 2; i--)
            if (n % i == 0 && 1ll * i * i != n)
            {
                cout << n / i - 1 << ' ' << i - 1 << endl;
                ok = true;
            }
        if (!ok) puts("No");
        return 0;
    }
    
    • 1

    信息

    ID
    126
    时间
    100ms
    内存
    8MiB
    难度
    2
    标签
    递交数
    3
    已通过
    2
    上传者