Консультация № 199435
27.10.2020, 10:35
0.00 руб.
27.10.2020, 10:44
0 3 1
Здравствуйте, уважаемые эксперты! Помогите пожалуйста с задачей.

Ниже записан алгоритм. Известно, что x >180. Укажите
наименьшее такое x, при вводе которого алгоритм печатает 20. Ответ
обоснуйте.

[code lang=pascal] var x, L, M:integer;
begin readln(x);
L :=3*x-30;
M :=x+30;
while L <> M do begin
if L > M then
L := L - M
else
M := M - L;
end;
writeln(M);
end. [/code]

Обсуждение

давно
Профессор
401888
1232
27.10.2020, 11:13
общий
это ответ
Здравствуйте, Anonim!
Это можно решить программно

[code lang=pascal]var x, L, M:integer;
begin
x:=180;
repeat
L :=3*x-30;
M :=x+30;
writeln('M=',M,' L=',L);
while L <> M do
begin
if L > M then L := L - M
else M := M - L;
end;
x:=x+1;
until M=20;
writeln('X=',x,' M=',M);
end.[/code]

Приложение:
Или так.
Эта программа находит НОД чисел M, L одним из алгоритмов Эвклида.
при х=180 L=510 M=210
первое M кратное 20=220 L=(220-30)*3-30=540, тоже кратно 20
тогда х=220-30=190
давно
Старший Модератор
31795
6196
27.10.2020, 11:45
общий
Адресаты:
Число Х должно быть кратно 10, т.к. L = M =20.
Первое число, которое кратно 10 и больше 180 = 190.
Проверяем.
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

давно
Профессор
401888
1232
27.10.2020, 11:49
общий
Да, так проще, а я что-то увидел алгоритм НОД и уперся в него.
Форма ответа