🔹 Шаг 1. Перевод чисел с неизвестной цифрой x
Идея:
операнды записаны в 23-ричной системе
x — одна неизвестная цифра (0…22)
для x ≥ 10 подставляется буква A, B, … (как в int(..., base))
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUV"[:23]
def to_num(s, x):
return int(s.replace('x', DIGITS[x]), 23)
📌 Результат: функция to_num переводит 761x035<sub>23</sub> + 338x932<sub>23</sub> в десятичное число.
🔹 Шаг 2. Наименьшее x, при котором выражение кратно 22
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUV"[:23]
def to_num(s, x):
return int(s.replace('x', DIGITS[x]), 23)
for x in range(23):
val = to_num('761x035', x) + to_num('338x932', x)
if val % 22 == 0:
print(x, val)
break
📌 Результат: перебираем x от 0 до 22; находим наименьшее x, при котором сумма кратна 22.
🔹 Шаг 3. Частное от деления на 22
DIGITS = "0123456789ABCDEFGHIJKLM"
def to_num(s, x):
return int(s.replace('x', DIGITS[x]), 23)
for x in range(23):
val = to_num('761x035', x) + to_num('338x932', x)
if val % 22 == 0:
print(val // 22)
break
📌 Результат: выводим частное от деления значения выражения на 22 (в десятичной системе); ответ: 70045642.