Найти тему
Забугорные записки

Проект Эйлера. Задача 9

Особая тройка Пифагора

Тройка Пифагора - три натуральных числа a < b < c, для которых выполняется равенство

a^2 + b^2 = c^2

Например, 3^2 + 4^2 = 9 + 16 = 25 = 5^2.

Существует только одна тройка Пифагора, для которой a + b + c = 1000.
Найдите произведение abc.

Как и всегда, я человек простой, значит, решим перебором.

Так как должны соблюдаться условия a < b < c и a + b + c = 1000, наименьшее возможное значение a = 1, а наибольшее – 332 (тогда b равно 333 c равно 335). Наименьшее значение b не играет роли, так как нижняя граница его диапазона при каждом значении a равна (a + 1). Наибольшее значение b = 499 (тогда a = 1, c = 500).

Теперь напишем сам алгоритм перебора:

for a in range(1, 333):
for b in range(a + 1, 500):
c = (a**2 + b**2)**0.5
if a + b + c == 1000:
print(int(a*b*c)) # Функция int чисто для красоты
break

# Output: 31875000

Наука
7 млн интересуются