Помогите понять код PYTHON
возник вопрос, этот код вычисляет НОД двух чисел(Наибольший общий делитель), не понимаю почему он должен работать корректно, разве цикл не будет работать до тех пока a и b станут нулями*? Разве не надо было написал "or" а не "and"
a = int(input())
b = int(input())
while a != 0 and b != 0:
if a > b:
a = a % b
else:
b = b % a
gcd = a + b
print(gcd)
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
В while
указывается условие продолжения работы цикла, а не окончания. Вот если превращать условие в обратное, чтобы прервать по нему цикл, то как известно по арифметике логических операторов, И
превратится в ИЛИ
:
while True:
if a == 0 or b == 0:
break
...
Вот вам как-раз проверка на равенство нулю и использование ИЛИ
, всё как вы хотели.