[LeetCode] Problem 633 - Sum of Square Numbers

Given a non-negative integer c, your task is to decide whether there’re two integers a and b such that a^2 + b^2 = c.

Example

No.1

Input: 5

Output: True

Explanation: 1 * 1 + 2 * 2 = 5

No.2

Input: 3

Output: False

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public boolean judgeSquareSum(int c) {
int a = 0;
int b = (int) Math.sqrt(c);

while (a <= b) {
int sum = a * a + b * b;

if (sum < c)
a++;
else if (sum > c)
b--;
else
return true;
}

return false;
}