private static int core(int n){
int small=0,big=n/2+1,mid=0;
while(small<big){
mid = small+(big-small)/2;
if(mid*mid>n) big = mid-1;
else if(mid*mid<n) small=mid+1;
else return mid;
}
int s=0,e=0;
if(mid*mid>n){
s = mid-1;e = mid;
}else{
s = mid;e = mid+1;
}
double m = (s+e)/2.0;
if(m*m<n) return e;
else return s;
}