题意
给出 中的 ,求 的最小值。
思路
等式两边同时同取 值,得到 ,整理可得 ,令 ,,所以 ,整理再求导可得 在 区间单调递减,所以从 开始暴力即可
注意
-
要开 64 位整数。
-
代码长度限制 256 字节。
代码
#include<bits/stdc++.h>
using namespace std;
long long t,a,n;
int main(){
cin>>t;
while (t--){
cin>>n;
a=n*2;
while ((a*a+1)%(a-n)){
a--;
}
cout<<(a*a+1)/(a-n)<<endl;
}
return 0;
}
说句闲话,这个是 NOI 2001 Day1 T2 的题在 SPOJ 上的搬运。