Var x, L, M: integer; begin readln(x); L := x - 16; M := x + 16; while L lt;gt; M do if L gt; M then L := L - M else M := M – L; writeln(M); end.

Var x, L, M: integer; begin readln(x); L := x - 16; M := x + 16; while L <> M do if L > M then L := L - M else M := M – L; writeln(M); end. 20 (№ 424) Ниже записан алгоритм. Получив на вход число x, этот алгоритм печатает число M. Известно, что x > 100. Укажите наименьшее такое (т.е. большее 100) число x, при вводе которого алгоритм печатает 16.
Гость
Ответ(ы) на вопрос:
Гость
В данной программе реализуется алгоритм поиска наибольшего общего делителя двух чисел (L и M). При этом M больше L на 32, а наибольший делитель чисел равен 16. Первое число > 100, кратное 16 - это 112, но наибольший общий делитель чисел 112-16 и 112+16 (96 и 128) равен 32. Следующее число, кратное 16 - это 128. Наибольший общий делитель 128-16 и 128+16 (112 и 144) = 16. Ответ: 128
Не нашли ответ?
Ответить на вопрос
Похожие вопросы