class Solution {
public:
bool judgeSquareSum(int c)
{
long right = (long)sqrt(c);
int left = 0;
long target = 0;
while(left <= right)
{
target = left * left + right * right;
//cout << left << " " << right << " "<< target << endl;
if(target == c) return true;
else if(target > c) --right;
else ++left;
}
return false;
}
};