Untitled

Условие: Тип 14 № 48396

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

$$ 2x84_{19} + 2B3x_{16}

$$

В записи чисел переменной x обозначены допустимые в данных системах счисления неизвестные цифры.

Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 88.

Для найденного значения x вычислите частное от деления значения арифметического выражения на 88 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.

Вариант 1: решение перебором

Вариант 1: решение перебором

Комментарии к первому варианту решения задачи:

  1. перебираем переменную x в девятнадцатеричной системе счисления
  2. после чего через f-строки подставляем переменную x и переводим получившуюся строчку в 10-ную систему счисления, используя встроенную функцию int(). Если эта функция принимает второй аргумент, то он отвечает за систему из которой был осуществлен перевод
  3. делаем аналогичные действия для второго числа
  4. если получившееся арифметическое выражение (в десятичной системе) делится на 88 без остатка, то оно удовлетворяет условию кратности
  5. выводим целую часть (частное) от деления на экран
  6. а так как выводов может быть несколько, то прерываем выполнение программы, чтобы оставить наименьшее
# Код решения Вариант 1
for x in '0123456789ABCDEFGHI':
    a = int(f'2{x}84', 19)
    b = int(f'2B3{x}', 16)
    if (a + b) % 88 == 0:
        print((a + b) // 88)
        exit()

Вариант 2: решение аналогичное первому, только более компактное

Вариант 2: решение аналогичное первому, только более компактное