Шешімі: Іздеу числа по результатам алгоритма
Ниже на четырёх языках программирования записан алгоритм. Получив на вход число $x$, этот алгоритм печатает два числа: $S$ и $P$. Укажите наибольшее число $x$, при вводе которого алгоритм печатает сначала 7, а потом 3.
1x = int(input()) 2P = 1 3S = 0 4N = 0 5while x > 0: 6 N = N + 1 7 S = S + (x % 3) 8 P = P * (x % 3) 9 x = x // 3 10S = S + N 11P = P + N 12print(S) 13print(P)
Шешім по шагам
4 қадамОперации $x \bmod 3$ и $x := x // 3$ последовательно выделяют цифры числа $x$ в троичной системе счисления. Пусть количество цифр равно $N$, их сумма — $A$, а произведение — $B$.
$$S=A+N,\quad P=B+N$$По условию алгоритм выводит сначала 7, а затем 3, поэтому сумма цифр и произведение цифр должны удовлетворять равенствам:
$$A+N=7,\quad B+N=3$$При $N=1$ единственная цифра должна иметь одновременно сумму 6 и произведение 2, что невозможно. При $N=2$ произведение цифр равно 1, значит обе цифры равны 1, но их сумма равна 2, а не 5.
При $N=3$ произведение цифр равно 0, поэтому одна из цифр равна 0. Сумма цифр должна быть $7-3=4$. Чтобы получить наибольшее число, выбираем цифры $2,2,0$ и располагаем их в порядке убывания.
$$220_3=2\cdot3^2+2\cdot3+0=24$$Где здесь ошибаются
Забывают прибавить количество цифр $N$ к сумме и произведению.
Располагают цифры $2,2,0$ не в порядке убывания.
Записывают число $220_3$ как десятичное число 220.