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

Дано арифметическое выражение:

9ACx3616 + 5CDxDA16

В записи чисел переменной x обозначена неизвестная цифра. При каком наименьшем значении переменной х, сумма цифр значения этого выражения, записанного в 7-ричной системе счисления, равна 34? В ответе для найденного значения x укажите значение выражения в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.

Способ 1

def summ(n):
    s = 0
    while n > 0:
        s += n % 10
        n //= 10
    return s

def n7(n):
    a = ’’
    while n > 0:
        a = str(n % 7) + a
        n //= 7
    return a

alf = ’0123456789abcdef’
for x in alf:
    s1 = int(’9ac’ + x + ’36’, 16)
    s2 = int(’5cd’ + x + ’da’, 16)
    s = s1 + s2
    if summ(int(n7(int(s)))) == 34:
        print(s)

Способ 2

# в массив записываем цифры чисел, -1 обозначает x, A - 10, B - 11, C - 12, D - 13, E - 14, F - 15
s1 = [9, 10, 12, -1, 3, 6]
s2 = [5, 12, 13, -1, 13, 10]
# система счисления
ss = 16

for x in range(ss):
    # присваиваем соответствующим элементам массива значения
    s1[3], s2[3] = x, x
    sm = 0
    # переводим в 10-ю систему счисления
    for j in range(len(s1)):
        sm += s1[len(s1) - j - 1] * ss ** j
    for j in range(len(s2)):
        sm += s2[len(s2) - j - 1] * ss ** j
    # переводим в 7-ю систему счисления
    sm7 = ’’
    t = sm
    while t > 0:
        sm7 = str(t % 7) + sm7
        t //= 7
    # находим сумму цифр числа
    sm7 = int(sm7)
    smc = 0
    while sm7 > 0:
        smc += sm7 % 10
        sm7 = sm7 // 10
    # проверяем условие
    if smc == 34:
        print(x, sm)

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