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