Условие
Операнды арифметического выражения записаны в системе счисления с основанием 15.
97968х1515 + 7×23315
В записи чисел переменной х обозначена неизвестная цифра из алфавита 15-ричной системы счисления. Определите наименьшее значение х, при котором значение данного арифметического выражения кратно 14. Для найденного значения х вычислите частное от деления значения арифметического выражения на 14 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Решение
Чтобы решить такую задачу нужно перебрать все возможные значения x и перевести числа из пятнадцатеричной системы счисления в десятичную.
1. Перебираем цифру x
x – это цифра пятнадцатеричной системы счисления. Все цифры пятнадцатеричной системы счисления: {0, 1, 2, 3, 4, 5, 6,7, 8, 9, A, B, C, D, E}. А обозначает 10, B – 11, C – 12…
Записываем цифры в строку и в цикле по ней проходимся:
alf = '0123456789ABCDE' # Проверяем, что здесь 15 цифр, так как система счисления пятнадцатеричная!
for x in alf:
2. Переводим числа из пятнадцатеричной системы счисления в десятичную
Воспользуемся функцией int(). Она получает на вход строку и основание системы счисления из которой надо перевести число в десятичную систему счисления.
Рассмотрим первое число 97968х1515, в Python получаем его как '97968' + x + '15' – это строка. Как раз строка нам и нужна, можем передать её в функцию int(). Также в функцию надо передать число 15 – основание системы счисления из которой int() будет переводить наше число в десятичную систему счисления.
a = int('97968' + x + '15', 15) # В переменной а получили десятичное число!
Получили в переменной a обычное десятичное число.
Аналогично делаем со вторым числом 7×23315:
b = int('7' + x + '233', 15)
Мы уже написали программу, которая перебирает все возможные значения x и переводит числа в десятичную систему счисления.
alf = '0123456789ABCDE' # Проверяем, что здесь 15 цифр, так как система счисления пятнадцатеричная!
for x in alf:
a = int('97968' + x + '15', 15)
b = int('7' + x + '233', 15)
3. Отбираем нужные значения x
Нам нужно найти те x, при которых сумма чисел делится на 14. Сделать это не сложно:
alf = '0123456789ABCDE' # Проверяем, что здесь 15 цифр, так как система счисления пятнадцатеричная!
for x in alf:
a = int('97968' + x + '15', 15)
b = int('7' + x + '233', 15)
if (a + b) % 14 == 0:
print((a+b) // 14)
Для подходящих x выводим на экран результат деления суммы чисел на 14. Это от нас просят дать в ответ.
Запускаем программу:
116071912
116073712
Она вывела два числа. В ответ берём первое, так как по условию нужно найти наименьшее значение x, при котором… Обрати внимание, что в ответ от нас просят не x, а результат деления суммы чисел на 14.