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

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

2x74514 + 53x6514

В записи чисел переменной x обозначена неизвестная цифра из алфавита четырнадцатеричной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 26. Для найденного значения x вычислите частное от деления значения арифметического выражения на 26 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.

Первый способ через строки

digits = "0123456789ABCD"  # Цифры 14-ричной системы счисления

ss = 14  # Система счисления

for x in digits:  # Перебираем цифру x
    # Преобразование чисел в 10-ричную систему счисления
    s1 = int("2" + x + "745", ss)
    s2 = int("53" + x + "65", ss)
    s = s1 + s2  # Значение арифметического выражения
    if s % 26 == 0:
        print(s // 26)
        break  # Первое выведенное число и будет ответом для наименьшей цифры x

Второй способ через списки

s1 = [2, -1, 7, 4, 5]
s2 = [5, 3, -1, 6, 5]
ss = 14
k = 26
for x in range(ss):
    s1[1] = s2[2] = x
    sm1, sm2 = 0, 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)

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