Операнды арифметического выражения записаны в системе счисления с основанием 123.
В записи чисел переменной обозначена неизвестная цифра из алфавита 123-ричной системы счисления. Определите наибольшее значение
, при котором значение данного арифметического выражения в десятичной системе счисления кратно 11. В ответе запишите только наибольшее значение
.
Первый способ ручной перевод
for x in range(123): # Перебор цифры x среди десятеричных представлений цифр 123-ричной системы счисления
# Перевод чисел из 123-ричной системы счисления
s1 = 13 * 123**5 + 1 * 123**4 + 5 * 123**3 + x * 123**2 + 6 * 123**1 + 10 * 123**0
s2 = 14 * 123**5 + x * 123**4 + 12 * 123**3 + 10 * 123**2 + 1 * 123**1 + 9 * 123**0
s = s1 + s2 # Значение арифметического выражения
if s % 11 == 0:
print(x)
Второй способ через списки
# A - 10, B - 11, C - 12, D - 13, E - 14, F - 15
s1 = [13, 1, 5, -1, 6, 10]
s2 = [14, -1, 12, 10, 1, 9]
ss = 123
k = 11
for x in range(ss):
s1[3] = x
s2[1] = x
sm1 = 0
sm2 = 0
for j in range(len(s1)):
sm1 += s1[len(s1) - j - 1] * ss ** j
for j in range(len(s2)):
sm2 += s2[len(s2) - j - 1] * ss ** j
if (sm1 + sm2) % k == 0:
print(x, (sm1 + sm2) // k)