Что нового

Article Проект Эйлера. Решение задачи № 9.

Человек Тьмы 0
19.04.2020
28
68
Решение девятой задачи на python3

Python:
#/usr/bin/python3
#!coding:utf-8
for a in range(3, 500):                    # первое число из тройки Пифагора, удовлетворяющее условиям находится между цифрой 3 и больше, например - 500
    for b in range(a, 500):                # второе число должно быть больше первого и меньше чего-то, интуитивно - 500 (но можно установить любое большое число)
        for c in range(b, 500):            # третье число должно быть больше второго и меньше чего-то, интуитивно - 500 (но можно установить любое большое число)
            if a ** 2 + b ** 2 == c ** 2:  # проверка №1 - являются ли числа тройкой Пифагора
                # print(a, b, c)           # опционально, для проверки корректности работы скрипта
                if a + b + c == 1000:      # проверка №2 - сумма должна быть равна 1000
                    print("Cогласно условию задачи, каждое последующее число должно быть больше предыдущего, а сумма равна 1000\nПроверяем выполнение условий:")
                    print("{:d}**2 + {:d}**2 = {:d}**2".format(a, b, c))
                    print("Проверка суммы : {:d}+{:d}+{:d}={:d}".format(a, b, c, a + b + c))
                    print("Тройка Пифагора, удовлетворяющая условиям задачи: {:d}, {:d}, {:d}.". format(a, b, c))
                    print("Произведение этих чисел равно: {:d}". format(a * b * c))
                    exit()                 # прекращаем работу скрипта - ответ найден.
projekteuler_1.png


Cогласно условию задачи, каждое последующее число должно быть больше предыдущего, а сумма равна 1000
Проверяем выполнение условий:
200**2 + 375**2 = 425**2
Проверка суммы : 200+375+425=1000
Тройка Пифагора, удовлетворяющая условиям задачи: 200, 375, 425.
Произведение этих чисел равно: 31875000
euler_projekt_2.png
 
Верх Низ