Предмет: Информатика,
автор: marishkaseagirl
Модифицированный алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока остаток не станет равно нулю; тогда второе число и есть НОД. Напишите программу, которая реализует этот алгоритм.
Входные данные
Входная строка содержит два числа, разделённые пробелом – a и b .
Выходные данные
Программа должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены.
Модифицированный алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока остаток не станет равно нулю; тогда второе число и есть НОД. Напишите программу, которая реализует этот алгоритм.
Входные данные
Входная строка содержит два числа, разделённые пробелом – a и b .
Выходные данные
Программа должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены.
На паскале
Ответы
Автор ответа:
1
Ответ:
program z1;
var a,b,k: integer;
begin
k:=0;
read(a,b);
repeat
if a>b then a:=a mod b else b:=b mod a;
k:=k+1;
until (a=0) or (b=0);
write (a+b,' ',k)
end.
Объяснение:
Ввод чисел
Цикл с постусловием
Если a больше b, то заменяем a на остаток от деления на b, иначе заменяем b на остаток от деления на a
Увеличиваем k на 1 (считаем количество шагов цикла)
Заканчиваем цикл если a=0 или b=0
Выводим на экран НОД (сумму a+b, так как или a=0 или b=0, то их сумма это оставшееся число не равное 0) и количество шагов цикла (k)
marishkaseagirl:
Input Expected Got
1 3
1 4
121 > 115 a = 6 b = 115
6 < 115 a = 6 b = 1
6 > 1 a = 0 b = 1
Похожие вопросы
Предмет: Математика,
автор: suinairdna1
Предмет: Русский язык,
автор: elena160583
Предмет: Русский язык,
автор: gazieva889067
Предмет: ОБЖ,
автор: Игнат64
Предмет: История,
автор: kseniamarkina20