Решение: Максимальное число по алгоритму
Ниже на пяти языках программирования записан алгоритм. Получив на вход натуральное десятичное число $x$, этот алгоритм печатает два числа: $L$ и $M$. Укажите наибольшее число $x$, при вводе которого алгоритм печатает сначала $8$, а потом $3$.
Решение по шагам
4 шагаНа каждой итерации переменная $x$ заменяется на результат целочисленного деления на $8$, поэтому $M$ равно количеству цифр исходного числа в восьмеричной системе счисления. Условие $M=3$ означает, что исходное число имеет вид $abc_8$, где $a \ne 0$.
На каждой итерации, когда текущее значение $x$ чётное, в $L$ умножается последняя цифра его восьмеричной записи. Поэтому $L$ является произведением чётных цифр записи числа $abc_8$.
Чтобы получить $L=8$, при ненулевых множителях нужны цифры $2$ и $4$. Для максимального числа выбираем старшую цифру $a=7$, которая нечётна и не входит в произведение. Оставшиеся цифры размещаем в порядке $b=4$, $c=2$, получая $742_8$.
Переведём число в десятичную систему: $742_8=7\cdot 8^2+4\cdot 8+2=448+32+2=482$. Проверка: последовательность текущих значений начинается с $482$, затем $60$, затем $7$; множители равны $2$ и $4$, поэтому $L=8$, а число итераций $M=3$.
Где здесь ошибаются
Забывают, что деление выполняется на $8$, поэтому количество итераций связано с восьмеричной записью.
Умножают $L$ на цифры нечётных текущих значений.
Получив восьмеричное число $742$, не переводят его в десятичную систему.