На вход программы подается число 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