变形可得 (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;
}