Задание №14 — Анализ выражений
Значение арифметического выражения 32020 - 31020 + 9800 - 81 записали в системе счисления с основанием 3. Сколько цифр «2» содержится в этой записи?
Правильный ответ
1595
Пояснение
Решение:
Приведём всё к степеням тройки: , . Тогда
Разберём запись по разрядам (нумеруем разряды справа, начиная с нулевого).
— это 580 двоек в разрядах с 1599-го по 1020-й.
Теперь вычитаем : заём берётся из младшей двойки (разряд 1020), она становится единицей, а все разряды с 1019-го по 5-й превращаются в двойки; в разряде 4 получается . Итого двойки стоят в разрядах с 1019-го по 4-й — это 1016 двоек, а разряды 3, 2, 1, 0 нулевые.
Старшая единица остаётся на месте, между ней и разрядом 1599 стоят нули (разряды с 2019-го по 1600-й, их 420).
Итого запись: 1, 420 нулей, 579 двоек, 1, 1016 двоек, 4 нуля. Количество двоек: .
def to_base(n, b):
s = ''
while n:
s = str(n % b) + s
n //= b
return s
n = 3**2020 - 3**1020 + 9**800 - 81
print(to_base(n, 3).count('2')) # 1595Ответ: 1595