Задание №14 — Анализ выражений
Операнды арифметического выражения записаны в системе счисления с основанием 23.
В записи чисел переменной х обозначена неизвестная цифра из алфавита 23-ричной системы счисления. Определите наименьшее значение х, при котором значение данного арифметического выражения кратно 22. Для найденного х вычислите частное от деления значения арифметического выражения на 22 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Правильный ответ
4651779499
Пояснение
Решение:
Основание системы счисления 23, а делитель . Так как , любое число сравнимо по модулю 22 с суммой своих 23-ричных цифр (это тот же признак, что и признак делимости на 9 в десятичной системе). Значит, вся сумма делится на 22 тогда и только тогда, когда на 22 делится сумма всех цифр трёх слагаемых.
Считаем суммы цифр:
- : ;
- : ;
- : .
Всего . Требуем , то есть , или , откуда . В алфавите 23-ричной системы подходят и ; наименьшее — .
Подставляем и делим сумму на 22:
b = 23
def num(ds):
n = 0
for d in ds:
n = n * b + d
return n
for x in range(b): # ищем наименьшее x
s = (num([1, x, 1, x, 1, x, 1, x, 1])
+ num([2, 0, x, 2, 4])
+ num([1, x, 2, 3, 5]))
if s % 22 == 0:
print(x, s // 22) # 7 4651779499
breakОтвет: 4651779499