(Д. Муфаззалов) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12300405.\)
Найдите все натуральные числа, не превосходящие число \(2023^2,\) соответствующие маске \(20{*}23,\) записи которых как минимум в двух системах счисления с натуральными основаниями в диапазоне \([2; \, 36]\) являются палиндромами. В ответе запишите все найденные числа в порядке возрастания, а справа от каждого числа — сумму оснований систем счисления из указанного диапазона, в которых запись этого числа является палиндромом.
Решение:
Python
def conv(n, p):
alph = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
res = ''
while n > 0:
res = alph[n % p] + res
n //= p
return res
for x in range(2023, 2023**2):
sx = str(x)
if sx[:2] == '20' and sx[-2:] == '23':
sp = 0
q = 0
for p in range(2, 37):
xp = conv(x, p)
if xp == xp[::-1]:
q += 1
sp += p
if q > 1:
print(sx, sp)
Ответ:
\(20723 \,\, 64\)
\(200723 \,\, 20\)
\(208423 \,\, 27\)
\(2033923 \,\, 61\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене