判断是否是平方数
public static int judge (BigInteger x)///通过二分在区间(0,x)寻找是否有平方等于n的数
{
BigInteger left=BigInteger.ZERO,right=x,mid,ans;
int sign;
while(left.compareTo(right)<=0)///l<=r 注意有带等号
{
mid=left.add(right).shiftRight(1);//求出中间值mid=(right+left)/2
ans=mid.multiply(mid);///ans=mid*mid
sign=ans.compareTo(x);///比较区间中间值的平方与x的大小
if(sign==0) return 1;///相等
else if(sign<0) left=mid.add