Решение: Максимальное число в восьмеричной записи
Ниже на пяти языках программирования записан алгоритм. Получив на вход натуральное десятичное число $x$, этот алгоритм печатает два числа: $L$ и $M$. Укажите наибольшее число $x$, при вводе которого алгоритм печатает сначала $49$, а потом $3$.
Решение по шагам
5 шаговКаждое выполнение цикла заменяет $x$ на результат целочисленного деления на $8$. Поэтому $M$ равно количеству цифр числа в восьмеричной системе счисления. При $M=3$ число имеет вид $(abc)_8$, где $a\ne0$.
Величина $L$ умножается на остаток от деления на $8$ только тогда, когда текущая цифра нечётная. Следовательно, $L$ равно произведению нечётных цифр восьмеричной записи.
Чтобы произведение было равно $49=7\cdot7$, две нечётные цифры должны быть равны $7$. Третья цифра не должна изменять произведение: она может быть чётной.
Для получения наибольшего числа выбираем цифры слева направо. Первые две цифры равны $7$, а третья — наибольшая чётная цифра $6$. Поэтому $x=(776)_8$.
Переводим число в десятичную систему:
$$x=7\cdot8^2+7\cdot8+6=448+56+6=510$$Где здесь ошибаются
Считать, что $M$ равно количеству разрядов десятичной записи.
Умножать $L$ на все цифры, включая чётные.
Выбрать третьей цифрой нечётную цифру, отличную от $1$ и $7$, из-за чего произведение не будет равно $49$.
Записать число $776$ как десятичное, не переведя его из восьмеричной системы.