Задача к ЕГЭ по информатике на тему «Поиск цифр(-ы) числа» №4

Операнды арифметического выражения записаны в системах счисления с основаниями 13 и 17:

1x41y13 + 67x32y17

В записи чисел переменными 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)

Ответ: 113116
Оцените статью
Я решу все!