---
# System prepended metadata

title: 633 Sum of Square Numbers
tags: [leetcode]

---

# 633 Sum of Square Numbers
###### tags: `leetcode`
## Problem Statement
Given a non-negative integer c, decide whether there're two integers a and b such that $a^2 + b^2 = c$
- Example 1:

> Input: c = 5
Output: true
Explanation: 1 * 1 + 2 * 2 = 5
- Example 2:

> Input: c = 3
Output: false
- Example 3:

> Input: c = 4
Output: true
- Example 4:

> Input: c = 2
Output: true
- Example 5:

> Input: c = 1
Output: true
 
- Constraints:

> $0 \leq c \leq 2^{31} - 1$

## Solution
- Since there are 2 numbers to be summed up, split the answer to be the even 2 portions and track the possible solution.
- Focus on one of the number, the other is ```target- number^2```
```cpp=
int mid= sqrt(c/ 2);
for (int i= mid; i> -1; i--)
{
    if (is_square(c- i* i))
        return true;
}
```
- To see whether the number is square, compare the square root and the true number.

```cpp=
bool is_square(int target)
{
    int mid= sqrt(target);
    return mid* mid== target;
}
```