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

Модифицированный алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока остаток не станет равно нулю; тогда второе число и есть НОД. Напишите программу, которая реализует этот алгоритм.

Входные данные
Входная строка содержит два числа, разделённые пробелом – a и b .

Выходные данные
Программа должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены.

Модифицированный алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока остаток не станет равно нулю; тогда второе число и есть НОД. Напишите программу, которая реализует этот алгоритм.

Входные данные
Входная строка содержит два числа, разделённые пробелом – a и b .

Выходные данные
Программа должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены.

На паскале

Ответы

Автор ответа: nastikots
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
marishkaseagirl: 121 236
1 3
1 4
nastikots: Где вы проверяете?
nastikots: Числа точно эти?
nastikots: 121 < 236 а = 121b = 115
121 > 115 a = 6 b = 115
6 < 115 a = 6 b = 1
6 > 1 a = 0 b = 1
nastikots: НОД = 1 прохода 4
nastikots: Возможно на вход должны идти 121 и 136?
nastikots: Тогда, 1 3
marishkaseagirl: а все,ощибка была в проверяющей системе
nastikots: Отлично! )
Похожие вопросы
Предмет: Русский язык, автор: elena160583
Предмет: История, автор: kseniamarkina20