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.
Answers & Comments
Verified answer
В данной программе реализуется алгоритм поиска наибольшего общего делителя двух чисел (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