14 2027-Анисимов-3
Операнды арифметического выражения записаны в системе счисления с основанием 52.
KATxYA52 + MILxANA52 + VERONxIKA52
В записи чисел переменной x обозначена неизвестная цифра из алфавита
52-ричной системы счисления.
Определите наибольшее значение x, при котором значение
данного арифметического выражения кратно 50.
Для найденного x
вычислите частное от деления значения арифметического выражения на 50
и укажите его в ответе в десятичной системе счисления.
Основание системы счисления
указывать не нужно.
Для цифр со значениями от 10 до 35 используются буквы
A—Z, а для значений от 36 до 51
— буквы a—p; x обозначает неизвестную цифру.
Задаём алфавит из 52 символов: цифры 0…9,
буквы A…Z и a…p.
Функция to_num подставляет вместо x нужный символ
и переводит запись в десятичное число. Для примера берём x = 48
(это буква m) и считаем первое слагаемое.
DIGITS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnop"
def to_num(s, x):
s = s.replace("x", DIGITS[x])
n = 0
for ch in s:
n = n * 52 + DIGITS.index(ch)
return n
x = 48
print(to_num("KATxYA", x))
Перебираем x от 51 вниз до 0.
Складываем три числа в десятичном виде. Как только сумма кратна 50,
печатаем частное val // 50 и останавливаемся.
При x = 48 ответ — 33452746668937.
for x in range(51, -1, -1):
val = to_num("KATxYA", x) + to_num("MILxANA", x) + to_num("VERONxIKA", x)
if val % 50 == 0:
print(val // 50)
break
Время решения
00:00.00
Нажмите «Пуск», когда начнёте решать
Пробел — пуск и пауза
Поверните телефон
Горизонтальный режим удобнее для таблицы и Python-кода