Овсиенко Алексей
Конспекты: Системы счисления
МЕТОД: АЛГОРИТМ ПЕРЕВОДА

Задание 14: Основания и выражения

В этом задании мы работаем с длинными арифметическими выражениями. Главная задача — перевести число в нужную систему счисления и посчитать количество определенных цифр.

Последняя цифра
n % base
Отсечь цифру
n // base

1. Классический подсчет цифр

Считаем, сколько раз цифра "2" встречается в записи результата выражения в 3-ричной системе.

n = 3**100 + 9**50 - 27
count = 0
while n > 0:
    if n % 3 == 2:
        count += 1
    n //= 3
print(count)

2. Уравнение с неизвестным X

Когда нужно перебрать цифру $x$ в разных системах счисления (например, 15-ричной и 17-ричной).

for x in '0123456789ABCDE':
    num1 = int(f"12{x}4", 15)
    num2 = int(f"1{x}45", 17)
    if (num1 + num2) % 14 == 0:
        print((num1 + num2) // 14)
        break

💡 Важные детали

Функция int(s, base): Переводит из любой системы в десятичную. Строка s должна содержать цифры, допустимые для этого основания.
Алфавит: Для систем выше 10 используй строку string.digits + string.ascii_uppercase или просто пиши '0123456789ABCDEF...'.