Задать свой вопрос   *более 50 000 пользователей получили ответ на «Решим всё»

Задача 25433 Здравствуйте! Очень нужна...

Условие

Здравствуйте! Очень нужна помощь.
Условие :
Ниже на четырех языках записан алгоритм. Получив на вход число x, этот алгоритм печатает число L. Известно, что x > 50. Укажите наименьшее из таких чисел х (больших 50), при вводе которых алгоритм печатает 6.
Паскаль
var x,L,M : integer;
begin
readln(x);
M:=32;
L:=x;
if L mod 7=0 then
M:=36;
while M < > 0 do
begin
x:=L mod M;
L:=M;
M:=x
end;
write(L)
end.

информатика 10-11 класс 3062

Все решения

Цикл в программе - это алгоритм Евклида для нахождения НОД(х,32) или НОД(х,36) (только другой вариант его решения).
В переменную М до начала цикла записано 32, но если число x делится на 7 без остатка, то значение М заменяют на 36.
Предположим, что замены не было. По условию на выходе L=6, значит на выходе М=0, т.е. делили последний раз на 6, тогда НОД(х,32)=6, но 32 на 6 не делится, значит была замена и НОД(х,36)=6.

Итак, надо найти х > 50 такое, что НОД(х,36)=6 и число х делится одновременно на 6 и на 7 (так как 32 заменили на 36). Первое такое число х=42 (42 < 50 не подходит). Следующие числа делящиеся на 6 и 7 одновременно - это х=84, 126, 168, 210, 252, и т.д.
Найдем для них НОД с числом 36:
НОД(84,36)= 12
НОД(126,36)= 18
НОД(168,36)= 12
НОД(210,36)= 6 - подходит
НОД(252,36)= 36 и т.д.
Ответ: 210

Написать комментарий

Меню

Присоединяйся в ВК