https://www.nowcoder.com/acm/contest/205/L
第一个问题可以oeis或者打表发现规律二分来解。
对于第二个问题就是找规律了,可以发现最终出现的数字是对称相互对应的!
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n;
int t;
cin>>t;
long long k;
while(t--)
{
cin>>n>>k;
long long ans=sqrt(4*n+1)-1;
cout<<ans<<" ";
long long kg=sqrt(n);
k=ans-k+1;
if(k<=kg)
{
cout<<k<<endl;
}
else{
if(ans%2==0)
{
k-=kg;
long long an1=n/(kg-k+1);
cout<<an1<<endl;
}
else{
k-=kg;
long long an1=n/(kg-k);
cout<<an1<<endl;
}
}
}
return 0;
}