In number theory, the sum of two squares theorem says when an integer N > 1 can be write as a sum of two squares, that is, when N = a2 + b2 for some integers a, b. An integer greater than one can be write as a sum of two squares if and only if its prime decomposition contains no prime congruent to raised to an odd power. This theorem supplements Fermat's theorem on sums of two squares which says when a prime number can be write as a sum of two squares, in that it also covers the case for composite numbers.

COMING SOON!

```
"""
Given an array of integers, return indices of the two numbers such that they add up to a specific target.
You may assume that each input would have exactly one solution, and you may not use the same element twice.
Example:
Given nums = [2, 7, 11, 15], target = 9,
Because nums[0] + nums[1] = 2 + 7 = 9,
return [0, 1].
"""
def twoSum(nums, target):
"""
:type nums: List[int]
:type target: int
:rtype: List[int]
"""
chk_map = {}
for index, val in enumerate(nums):
compl = target - val
if compl in chk_map:
indices = [chk_map[compl], index]
print(indices)
return [indices]
else:
chk_map[val] = index
return False
```