Решение: Максимальное входное число
Ниже на пяти языках программирования записан алгоритм. Получив на вход число $x$, этот алгоритм печатает два числа: $L$ и $M$. Укажите наибольшее число $x$, при вводе которого алгоритм печатает сначала 3, а потом 5.
1x = int(input()) 2Q = 6 3L = 0 4while x >= Q: 5 L = L + 1 6 x = x - Q 7M = x 8if M < L: 9 M = L 10 L = x 11print(L) 12print(M)
Решение по шагам
3 шагаВ цикле из исходного числа $x$ вычитают 6, а переменную $L$ увеличивают на 1. Поэтому после завершения цикла $L$ — целая часть частного от деления $x$ на 6, а $M$ — остаток.
$$x = 6L + M,\quad 0 \leq M < 6$$Если после цикла $M < L$, значения меняются местами: первым печатается остаток, вторым — частное. Чтобы получить 3 и 5, должны выполняться $M=3$ и $L=5$.
$$x = 6 \cdot 5 + 3 = 33$$Без перестановки можно получить $L=3$ и $M=5$, что даёт $x=6\cdot3+5=23$. Сравнивая оба варианта, выбираем наибольшее число.
$$33 > 23$$Где здесь ошибаются
Путать частное и остаток при делении на 6.
Рассматривать только случай без перестановки значений.
Не учитывать условие $M<L$.