D题

数学推导 alt

代码如下

#include <bits/stdc++.h>
using namespace std;
using ll=long long;

int main()
{
    ll k;cin>>k;
    ll d=sqrt((long double)(k+1));
    bool tag=0;
    for(ll i=2;i<=d;i++){
        ll j=(k+1)/i;
        if(j>=2 && i*j==k+1){
            cout<<i-1+j-1<<' '<<(i-1)*(j-1)<<'\n';
            tag=1;
            break;
        }
    }
    if(!tag) cout<<"-1\n";
}