Решение: Максимальное число по алгоритму
Ниже на пяти языках программирования записан алгоритм. Получив на вход натуральное десятичное число $x$, этот алгоритм печатает два числа: $L$ и $M$. Изначально $L=1$, $M=0$. Пока $x>0$, значение $M$ увеличивается на 1; если $x$ чётно, значение $L$ умножается на $x\bmod 8$; затем $x$ заменяется на частное от деления на 8 без остатка. Укажите наибольшее число $x$, при вводе которого алгоритм печатает сначала 24, а потом 3.
Решение по шагам
5 шаговНа каждой итерации число делится на 8 без остатка, поэтому $M$ равно количеству цифр числа в восьмеричной системе счисления. Условие $M=3$ означает, что число имеет трёхзначную восьмеричную запись.
Величина $x\bmod 8$ — очередная цифра восьмеричной записи. Она включается в произведение $L$ только тогда, когда текущая часть числа чётна, то есть очередная восьмеричная цифра чётна.
Чтобы получить $L=24$, чётные цифры должны дать произведение $4\cdot 6=24$. Остальная цифра должна быть нечётной, чтобы не изменить произведение.
Для максимального трёхзначного числа цифры располагаем в порядке убывания: $6$, $4$, а наименьшую значащую позицию занимает максимальная нечётная цифра $7$. Получаем $647_8$.
Переводим число в десятичную систему: $647_8=6\cdot 8^2+4\cdot 8+7=384+32+7=423$.
Где здесь ошибаются
Путать основание системы счисления и считать количество десятичных цифр.
Учитывать в произведении нечётную цифру.
Записывать ответ в восьмеричной системе вместо десятичной.