Задание №14 — Анализ выражений
Операнды арифметического выражения записаны в системе счисления с основанием 19.
В записи чисел переменной x обозначена неизвестная цифра из алфавита 19-ричной системы счисления. Определите наибольшее значение x, при котором значение данного арифметического выражения кратно 18. Для найденного x вычислите частное от деления значения арифметического выражения на 18 и укажите его в ответе в десятичной системе счисления. Основание системы счисления указывать не нужно.
Правильный ответ
469034148
Пояснение
Решение:
Ключевая идея: , поэтому в 19-ричной системе работает тот же признак, что признак делимости на 9 в десятичной — число сравнимо по модулю 18 с суммой своих цифр. Сумма цифр первого числа равна , сумма цифр второго числа равна .
Значит, всё выражение сравнимо с по модулю 18. Так как , условие принимает вид , то есть . В алфавите 19-ричной системы цифры принимают значения от 0 до 18, поэтому подходят и ; наибольшее из них — .
Остаётся подставить , перевести оба числа в десятичную систему и разделить сумму на 18. Проще всего доверить это программе: цифру со значением 15 удобно записать буквой f, тогда функция int сама переведёт запись из 19-ричной системы.
digits = '0123456789abcdefghi' # цифры 19-ричной системы: 0 ... 18
for x in range(19):
a = int('98897' + digits[x] + '21', 19)
b = int('2' + digits[x] + '923', 19)
if (a + b) % 18 == 0:
print(x, (a + b) // 18)
# 6 469030538
# 15 469034148 -- наибольшее x
При сумма равна , а частное от деления на 18 — .
Ответ: 469034148