bool judgeSquareSum(int c){
long long n = 0;
while(n*n < c)n++;
if (n*n == c)return true;
long long i = n - 1;
long long j = 1;
while(i>=j)
{
while(i>=j && j*j + i*i < c)j++; //如果小于目标数 左边递加 直到大于或者等于目标数
while(i>j && j*j + i*i > c)i--; //如果大于目标数 右边递减 直到小于或者等于目标数
if (i>=j && j*j + i*i == c) return true;
if (i == j) return false;
}
return false;
}