Операнды арифметического выражения записаны в системах счисления с основаниями 13 и 17:
В записи чисел переменными x и y обозначены допустимые в данных системах счисления неизвестные цифры. Определите значения x и y, при которых значение данного арифметического выражения будет наименьшим и кратно 81. Для найденных значений x и y вычислите частное от деления значения арифметического выражения на 81 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Первый способ решения:
for x in ’0123456789ABC’:
for y in ’0123456789ABC’:
s1 = int(’1’ + x + ’41’ + y, 13)
s2 = int(’67’ + x + ’32’ + y, 17)
s = s1 + s2
if s % 81 == 0:
print(s // 81)
Второй способ решения:
s1 = [1, -1, 4, 1, -2]
s2 = [6, 7, -1, 3, 2, -2]
ss1 = 13
ss2 = 17
k = 81
for x in range(ss1): # проходим только до 13 системы счисления, так как x и y используются в обоих числах
for y in range (ss1):
s1[1], s2[2] = x, x
s1[4], s2[5] = y, y
sm1, sm2 = 0, 0
for j in range(len(s1)):
sm1 += s1[len(s1) - j - 1] * ss1 ** j
for j in range(len(s2)):
sm2 += s2[len(s2) - j - 1] * ss2 ** j
if (sm1 + sm2) % k == 0:
print(x, (sm1 + sm2) // k)