# Project Euler Problem 9: Special Pythagorean Triplet¶

The source code for this problem can be found here.

## Problem Statement¶

A Pythagorean triplet is a set of three natural numbers, $$a \lt b \lt c$$, for which,
$$a^2 + b^2 = c^2$$

For example, $$3^2 + 4^2 = 9 + 16 = 25 = 5^2$$.

There exists exactly one Pythagorean triplet for which $$a + b + c = 1000$$.

Find the product $$abc$$.

## Solution Discussion¶

Perform an exhaustive search over $$a,b,c$$ using a few constraints to limit the search space.

$\begin{split}&a \lt b \lt c \\ &a + b + c = 1000\end{split}$

This is concisely achieved by iterating over the variable $$a$$ first, then determining the range of variable $$b$$ based on the current value of $$a$$. Finally, the value of the variable $$c$$ can be simply computed as:

$$c = 1000 - a - b$$

## Solution Implementation¶

def solve():
""" Compute the answer to Project Euler's problem #9 """
triplet_sum = 1000
min_a, max_a = 1, triplet_sum // 3
for a in range(1, max_a):
for b in range(a + 1, (triplet_sum - a) // 2):
c = triplet_sum - a - b
assert a < b < c, "constraint violated: {} < {} < {}".format(a, b, c)
if a ** 2 + b ** 2 == c ** 2:
return a * b * c  # there should only be one solution ...