На вход программы подается число k.Найдите все пифагоровы тройки, такие, что c < k и выведите их количество для заданного k

Есть задача

На вход программы подается число k. Найдите все пифагоровы тройки, такие, что c <k и выведите их количество для заданного k.

Например, если k = 10, то условию удовлетворяет только одна тройка

и программа должна вывести 1.

Sample Input:

10 Sample Output:

1

k = int(input())
count = 0
numbers = []
for c in range(3, k):
    for a in range(2, c):
        for b in range(1, a):
            if a ** 2 + b ** 2 == c ** 2 and not c in numbers:
                count += 1
                numbers.append(c)
print(count)

Не могу понять где ошибаюсь в написание кода.Подскажите плиз:)


Ответы (1 шт):

Автор решения: MBo

Ошибаетесь вот где - нельзя просто проверять наличие с во множестве, так как одно с может участвовать в разных тройках - например 7,24,25 и 15,20,25.

Поэтому храните всю тройку как кортеж, или достаточно хранить любую пару из тройки - например, a и b

→ Ссылка