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

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

3x3x869217 + 18x35x5717

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

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

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

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

for x in digits:  # Перебираем цифру x
    # Преобразование чисел в 10-ричную систему счисления
    s1 = int("3" + x + "3" + x + "8692", ss)
    s2 = int("18" + x + "35" + x + "57", ss)
    s = s1 + s2  # Значение арифметического выражения
    if s % 12 == 0:
        print(s // 12)

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

def f(a,k):
    a=a[::-1]
    return sum(a[i]*k**i for i in range(len(a)))
for x in range(17):
    s=f([3,x,3,x,8,6,9,2],17)+f([1,8,x,3,5,x,5,7],17)
    if s%12==0:
        print(x,s//12)

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