Project Euler: Problem 9

https://projecteuler.net/problem=9

A Pythagorean triplet is a set of three natural numbers, $a < b < 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.


In [7]:
# first find triplets. Note a,b,c are all < 999.

def testSum(a,b,c):
    return abs(a + b + c - 1000) < 0.000001

assert testSum(200, 200, 600)
assert not testSum(1,2,5)
assert testSum(200, 200, 600.000000001)

In [11]:
for a in range(1,999):
    for b in range(a, 999):
        c = (a**2+b**2)**0.5
        if testSum(a,b,c):
            print(a, b, int(c))


200 375 425

In [ ]:
# This cell will be used for grading, leave it at the end of the notebook.