#include #include #include #include #include #include #include #include #define F first #define S second #define mp make_pair using namespace std; typedef __int64 LL; const int maxn = 1e5+10; LL prime[maxn]; LL cit[maxn],len; void init() { prime[0]=prime[1]=true; for(int i=2;i<=101000;i++) { if(!prime[i]) { if(i>101000/i) continue; for(int j=i*i;j<=101000;j+=i) prime[j]=true; } } len=0; for(int i=2;i<=101000;i++) { if(!prime[i]) cit[len++]=i; } } bool ok(int x) { if(x==1) return false; for(int i=0;i0) { b=y-i; flag2=true; } if(y-i<=0) flag2=true; if(flag1&&flag2) break; } if(a!=-1) ans=min(ans,abs(a*a-x)); if(b!=-1) ans=min(ans,abs(b*b-x)); printf("%I64d\n",ans); } return 0; }