Задание №14 — Анализ выражений
#69720Задание №14ФИПИ
Системы счисления
Значение арифметического выражения 4700 + 4100 - 16100 - 64 записали в системе счисления с основанием 4. Сколько цифр «3» содержится в этой записи?
Правильный ответ
597
Пояснение
Решение:
Приведём всё к степеням четвёрки: , . Тогда
Сначала — это 500 троек в разрядах с 699-го по 200-й, ниже нули.
Прибавляем (единица в разряде 100) и вычитаем : заём съедает эту единицу, разряды с 99-го по 4-й становятся тройками, а в разряде 3 получается . Значит, тройки стоят в разрядах с 99-го по 3-й — это 97 троек, а разряды 2, 1, 0 нулевые.
Итого запись: 500 троек, 100 нулей, 97 троек, 3 нуля. Количество троек: .
def to_base(n, b):
s = ''
while n:
s = str(n % b) + s
n //= b
return s
n = 4**700 + 4**100 - 16**100 - 64
print(to_base(n, 4).count('3')) # 597Ответ: 597