Задача. Операнды арифметического выражения записаны в системах счисления с основанием 17:
10x017 + F0xF017
В записи чисел переменной x обозначена неизвестная цифра из алфавита 17-ричной системы счисления. Определите наименьшее значение x, при котором значение данного арифметического выражения кратно 13. Для найденного значения x вычислите частное от деления значения арифметического выражения на 13 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.
Как будем решать задачу
- Запустим цикл по числу x в диапазоне цифр 17-ой системы счисления (от 0 до G)
- Выполним перевод чисел в 10-ю систему счисления функцией int()
- Вычислим значение арифметического выражения
- Выведем число x и частное от деления значения арифметического выражения на 13, если значение выражения кратно числу 13
for x in '0123456789ABCDEFG':
a1 = int('10'+x+'0',17)
a2 = int('F0'+x+'F0',17)
s = a1 + a2
if s % 13 == 0:
print(x, s/13)
Результат запуска программы
Наименьшее x = 2, а частное от деления значения выражения на число 13 равно 96815
Ответ: 96815
Ограничение данной программы состоит в использовании функции int(): максимальное основание, для которого допустим перевод числа, это 36, минимальное допустимое основание это 2.
Комментариев нет:
Отправить комментарий