题解:P11496 [ROIR 2019 Day 1] 完全平方
题目:P11496 [ROIR 2019 Day 1] 完全平方
题意:
给出一个整数 none 。
思路:
对于
对于
令
我们可以从
时间复杂度
代码:
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
typedef long long ll;
const ll inf=1e18;
inline ll read(){
ll x=0,f=1; char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-') f=-1; ch=getchar();}
while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
return x*f;
}
signed main(){
ll n=read(),ans=inf;
if(n==0){
puts("0");return 0;
}
for(ll p=sqrt(abs(n));p>=1;--p){
ll q=n/p;
if(p*q!=n) continue;
if(abs(p+q)%2) continue;
ans=min(ans,abs(p+q)/2);//算数平方根为正 eg. p=1, q=-5 & p=-1, q=5 可以一起计算
}
if(ans==inf) puts("none");
else printf("%lld",ans);
return 0;
}
闲话:
想了很久怎么快速的分解因数,没想到