euler/python/e039.py

17 lines
420 B
Python

def get_triplets_for_perimter(p):
return [(a, b, p - a - b)
for b in range(1, p // 2 + 1)
for a in range(1, b)
if a * a + b * b == (p - a - b) * (p - a - b)]
def euler_039():
return max([(len(get_triplets_for_perimter(p)), p)
for p in range(1, 1001)])[1]
if __name__ == "__main__":
assert(euler_039() == 840)
print("e039.py: " + str(euler_039()))