№ 8425 (Уровень: Средний)
В системе счисления с основанием p выполняется равенство 32 * 14 = xy2
.
Буквами x и y обозначены некоторые цифры из алфавита системы счисления с основанием p.
Определите значение числа yx_p
и запишите это значение в десятичной системе счисления.
Комментарии к коду решения:
ALPHABET = sorted('0123456789AQWERTYUIOPSDFGHJKLZXCVBNM')
- Удобный способ создание отсортированного списка символов алфавита 36-ой системы счисления.for p in range(5, 36+1):
- Цикл по основаниям систем счисления от 5 до 36. От 5 потому что в нашем выражении старшая цифра 4, а до 36 - ограничения нашего алфавита.for x in ALPHABET[:p]:
- Цикл по символам алфавита для текущего основания p.for y in ALPHABET[:p]:
- Вложенный цикл по символам алфавита для текущего основания p.if int('32', p) * int('14', p) == int(f'{x}{y}2', p):
- Проверка: если произведение чисел в системе счисления p равно числу в системе счисления p, собранному из символов x, y и '2'.print(int(f'{y}{x}', p))
Вывод числа, собранного из символов y и x в системе счисления p.
ALPHABET = sorted('0123456789AQWERTYUIOPSDFGHJKLZXCVBNM')
for p in range(5, 36+1):
for x in ALPHABET[:p]:
for y in ALPHABET[:p]:
if int('32', p) * int('14', p) == int(f'{x}{y}2', p):
print(int(f'{y}{x}', p))
**Присоединяйтесь и готовьтесь с нами: t.me/informatika_kege_itpy**
Автор статьи: @ilandroxxy