Напишите программу, которая для двух положительных целых чисел находит НОД
Нужна помощь.Я немного запутался в задание и коде.
first = int(input("Enter the first integer: "))
second = int(input("Enter the second integer: "))
if first > second:
gcd = second
else:
gcd = first
while first % gcd == 0 or second % gcd == 0:
if gcd % first == 0 and gcd % second == 0:
print(gcd)
print(first)
print(second)
break
gcd -= 1
Пусть два начальных числа first и second. Выберем меньшее из них и присвоим значение переменной gcd. Пока first или second не делятся на gcd без остатка, следует выполнять цикл, в котором уменьшаем переменную gcd на единицу. Когда цикл закончится в переменной gcd будет НСД для чисел first и second Напишите программу, которая для двух положительных целых чисел находит НДС.
Примечание: Для условия цикла в пункте 3 необходимо помнить, что цикл while выполняется при True, а наш цикл должен закончиться, только если gcd разделил оба числа без остатка.
Можно также обьяснение что не так делал
Ответы (3 шт):
Автор решения: Владимир Клыков
→ Ссылка
first = int(input("Enter the first integer: "))
second = int(input("Enter the second integer: "))
if first > second:
gcd = second
else:
gcd = first
#/* не хватает проверки на ноль, если gcd = 0 - будет ошибка */
while first % gcd != 0 and second % gcd != 0:
gcd -= 1
print(gcd)
print(first)
print(second)
Автор решения: Alduin
→ Ссылка
first = int(input('a = '))
second = int(input('b = '))
def nsd(first, second):
while first*second != 0:
if first >= second:
first = first % second
else:
second = second % first
return first + second
gcd = nsd(first, second)
print(gcd)
Автор решения: Eulampios
→ Ссылка
num1, num2 = map(int, input('Введите два числа через пробел: ').split())
cnst1 = num1
cnst2 = num2
while num1 != 0 and num2 != 0:
if num1 > num2:
num1 %= num2
else:
num2 %= num1
print(f'НОД({cnst1}, {cnst2}) = {num1 + num2}')