
№ 5632 (Уровень: Средний)
(М. Ишимов) Операнды арифметического выражения записаны в системе счисления с основанием 21.
$$ 32xyA_{21} + 16y18_{21} $$
В записи чисел переменными х и у обозначены две неизвестные цифры из алфавита 21-ричной системы счисления. Определите наименьшее значение х, при котором значение данного арифметического выражения кратно 12_10 при любом нечётном значении у. Для найденного значения х вычислите частное от деления значения арифметического выражения на 12_10 при у = 7 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.

Комментарии к решению задачи:
alphabet, которая содержит все символы алфавита и цифры от 0 до 9 и отсортированы в алфавитном порядке.alphabet, чтобы удовлетворять 21-ной системе счисления.if. Мы используем функцию all() для проверки, удовлетворяют ли все значения y из списка alphabet[1:21:2] заданному условию. Значение удовлетворяет условию, если остаток от деления суммы выражений int(f'32{y}{x}A', 21) и int(f'16{y}18', 21) на 12 равен 0.if, выполняется успешно, мы вычисляем значение выражения int(f'32{7}{x}A', 21) + int(f'16{7}18', 21)) // 12 и выводим его на экран.x, который удовлетворяет заданному условию, мы используем оператор break, чтобы выйти из цикла for.alphabet = sorted('0123456789QWERTYUIOPASDFGHJKLZXCVBNM')
for x in alphabet[:21]:
if all(
(int(f'32{y}{x}A', 21) + int(f'16{y}18', 21)) % 12 == 0
for y in alphabet[1:21:2]
):
print((int(f'32{7}{x}A', 21) + int(f'16{7}18', 21)) // 12)
break