Предмет: Информатика, автор: lenpridumivat

100 баллов! Ввести с клавиатуры два натуральных числа и сравнить количество шагов цикла для вычисления их НОД с помощью обычного и модифицированного алгоритмов Евклида.
Python


tigran9999abrahamyan: всмысле?
tigran9999abrahamyan: с какого?
lenpridumivat: https://znanija.com/task/28934536
tigran9999abrahamyan: может похоже, но я клянусь, что я сам сделал.
lenpridumivat: Чел, ты посмотри на условие задачи, где там ответ на вопрос про обычный и модифицированный алгоритм Евклида?
tigran9999abrahamyan: я честно, клянусь, я так сам сделал
tigran9999abrahamyan: я не знаю почему похоже
tigran9999abrahamyan: заранее извиняюсь.
lenpridumivat: Без разницы, в любом случае, мне нужен такой протокол:
lenpridumivat: Введите два числа:
1998 2
НОД(1998,2)=2
Обычный алгоритм: 998
Модифицированный: 1

Ответы

Автор ответа: nastikots
4

Ответ:

a, b = map(int, input("Введите два числа: \n").split())

a1,b1 = a,b

o = 0

while a1 != b1:

   if a1 > b1:

       a1 = a1 - b1

   else:

       b1 = b1 - a1  

   o += 1

a2,b2 = a,b

m = 0

while a2 != 0 and b2 != 0:

   if a2 > b2:

       a2 = a2 % b2

   else:

       b2 = b2 % a2  

   m += 1

print(f"НОД ({a},{b}) = {a1}")

print(f"Обычный: {o}")

print(f"Модифицированный: {m}")

Объяснение:

Вводим 2 числа (в строку через пробел)

Вычисляем НОД с помощью обычного алгоритма Евклида и считаем количество шагов цикла

Вычисляем НОД с помощью модифицированного алгоритма Евклида и считаем количество шагов цикла

Выводим результат

Похожие вопросы
Предмет: Русский язык, автор: АлёнаКаменная1
Предмет: Русский язык, автор: подаполмпол