Операнды арифметического выражения записаны в системе счисления с основанием 39.
78x93239 − 11x44339 + 37348x0139
В записи чисел переменной х обозначена неизвестная цифра из алфавита 39-ричной системы счисления.
Определите наибольшее значение х, при котором значение данного арифметического выражения кратно 22.
Для найденного х вычислите частное от деления значения арифметического выражения на 22 и укажите его в ответе в десятичной системе счисления.
Основание системы счисления указывать не нужно.
🔹 Шаг 1. Перевод чисел с неизвестной цифрой x
Идея:
все операнды записаны в 39-ричной системе
x — одна неизвестная цифра (0…38)
для x ≥ 10 в запись подставляется буква A, B, …
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#"
def to_num(s, x):
s = s.replace('x', DIGITS[x])
n = 0
for ch in s:
n = n * 39 + DIGITS.index(ch)
return n
📌 Результат: функция to_num переводит запись вида 78x93239 − 11x44339 + 37348x0139 в десятичное число.
🔹 Шаг 2. Наибольшее x, при котором выражение кратно 22
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#"
def to_num(s, x):
s = s.replace('x', DIGITS[x])
n = 0
for ch in s:
n = n * 39 + DIGITS.index(ch)
return n
for x in range(38, -1, -1):
val = to_num('78x932', x) - to_num('11x443', x) + to_num('37348x01', x)
if val % 22 == 0:
print(x, val)
break
📌 Результат: перебираем x от 38 к 0; находим наибольшее x, при котором значение кратно 22.
🔹 Шаг 3. Частное от деления на 22
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#"
def to_num(s, x):
s = s.replace('x', DIGITS[x])
n = 0
for ch in s:
n = n * 39 + DIGITS.index(ch)
return n
for x in range(38, -1, -1):
val = to_num('78x932', x) - to_num('11x443', x) + to_num('37348x01', x)
if val % 22 == 0:
print(val // 22)
break
📌 Результат: выводим частное от деления значения выражения на 22 (в десятичной системе); ответ: 19871009574.
🔹 Шаг 1. Перевод чисел с неизвестной цифрой x
Идея:
все операнды записаны в 39-ричной системе
x — одна неизвестная цифра (0…38)
для x ≥ 10 в запись подставляется буква A, B, …
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#"
def to_num(s, x):
s = s.replace('x', DIGITS[x])
n = 0
for ch in s:
n = n * 39 + DIGITS.index(ch)
return n
📌 Результат: функция to_num переводит запись вида 78x93239 − 11x44339 + 37348x0139 в десятичное число.
🔹 Шаг 2. Наибольшее x, при котором выражение кратно 22
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#"
def to_num(s, x):
s = s.replace('x', DIGITS[x])
n = 0
for ch in s:
n = n * 39 + DIGITS.index(ch)
return n
for x in range(38, -1, -1):
val = to_num('78x932', x) - to_num('11x443', x) + to_num('37348x01', x)
if val % 22 == 0:
print(x, val)
break
📌 Результат: перебираем x от 38 к 0; находим наибольшее x, при котором значение кратно 22.
🔹 Шаг 3. Частное от деления на 22
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#"
def to_num(s, x):
s = s.replace('x', DIGITS[x])
n = 0
for ch in s:
n = n * 39 + DIGITS.index(ch)
return n
for x in range(38, -1, -1):
val = to_num('78x932', x) - to_num('11x443', x) + to_num('37348x01', x)
if val % 22 == 0:
print(val // 22)
break
📌 Результат: выводим частное от деления значения выражения на 22 (в десятичной системе); ответ: 19871009574.
🔹 Шаг 1. Перевод чисел с неизвестной цифрой x
Идея:
все операнды записаны в 39-ричной системе
x — одна неизвестная цифра (0…38)
для x ≥ 10 в запись подставляется буква A, B, …
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#"
def to_num(s, x):
s = s.replace('x', DIGITS[x])
n = 0
for ch in s:
n = n * 39 + DIGITS.index(ch)
return n
📌 Результат: функция to_num переводит запись вида 78x93239 − 11x44339 + 37348x0139 в десятичное число.
🔹 Шаг 2. Наибольшее x, при котором выражение кратно 22
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#"
def to_num(s, x):
s = s.replace('x', DIGITS[x])
n = 0
for ch in s:
n = n * 39 + DIGITS.index(ch)
return n
for x in range(38, -1, -1):
val = to_num('78x932', x) - to_num('11x443', x) + to_num('37348x01', x)
if val % 22 == 0:
print(x, val)
break
📌 Результат: перебираем x от 38 к 0; находим наибольшее x, при котором значение кратно 22.
🔹 Шаг 3. Частное от деления на 22
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#"
def to_num(s, x):
s = s.replace('x', DIGITS[x])
n = 0
for ch in s:
n = n * 39 + DIGITS.index(ch)
return n
for x in range(38, -1, -1):
val = to_num('78x932', x) - to_num('11x443', x) + to_num('37348x01', x)
if val % 22 == 0:
print(val // 22)
break
📌 Результат: выводим частное от деления значения выражения на 22 (в десятичной системе); ответ: 19871009574.