Решение: Максимальное число по алгоритму
Ниже на пяти языках программирования записан алгоритм. Получив на вход натуральное десятичное число $x$, этот алгоритм печатает два числа: $L$ и $M$. Укажите наибольшее число $x$, при вводе которого алгоритм печатает сначала $21$, а потом $3$.
Решение по шагам
5 шаговПеременная $M$ увеличивается на единицу при каждом делении $x$ на $8$ до получения нуля. Поэтому $M=3$ означает, что исходное число имеет три цифры в восьмеричной системе счисления.
Переменная $L$ умножается на последнюю цифру текущего числа только тогда, когда эта цифра нечётная. Следовательно, $L$ равно произведению нечётных цифр восьмеричной записи числа.
Чтобы получить $L=21$, нечётные цифры должны дать произведение $3\cdot7$. Для наибольшего трёхзначного восьмеричного числа ставим $7$ на первое место, затем выбираем наибольшую чётную цифру $6$, которая не изменяет $L$, и ставим $3$ на последнее место.
Получаем $x=763_8$. Переведём число в десятичную систему:
$$x=7\cdot8^2+6\cdot8+3=448+48+3=499$$Проверка: нечётные цифры записи $763_8$ — это $7$ и $3$, поэтому $L=7\cdot3=21$, а число цифр равно $M=3$.
Где здесь ошибаются
Учитывать при вычислении $L$ чётную цифру $6$.
Считать, что $M$ равно количеству десятичных цифр числа.
Выбрать запись $731_8$, не используя максимальную чётную цифру $6$.