Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 25. Информатика. ЕГЭ. Поляков-5965
- Просмотры: 228
- Изменено: 30 марта 2026
*(Д. Муфаззалов) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
- символ «\(?\)» означает ровно одну произвольную цифру;
- символ «\(*\)» означает любую последовательность цифр произвольной длины; в том числе «\(*\)» может задавать и пустую последовательность.
Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12300405.\)
Найдите все натуральные числа, не превосходящие число \(10 \cdot 2023^3,\) соответствующие маске \({*}2{?}{?}3{*},\) записи которых в системах счисления с основаниями \(3,\) \(9\) и \(27\) являются палиндромами. В ответе запишите все найденные числа в порядке возрастания, а справа от каждого числа — сумму цифр в его записи в системе счисления с основанием \(8.\)
Решение:
Python
from itertools import product
def conv(n, p):
ans = ''
alph = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'
while n > 0:
ans = alph[n % p] + ans
n //= p
return ans
lim = 10 * 2023**3
res = []
for r in range(1, 12):
for p in product('012', repeat=r):
if p[0] == '0':
continue
s = ''.join(p)
cand = []
d = int(s + s[::-1], 3)
if d < lim:
cand.append(d)
for c in '012':
d = int(s + c + s[::-1], 3)
if d < lim:
cand.append(d)
for n in cand:
ns = str(n)
if any(a == '2' and b == '3' for a, b in zip(ns, ns[3:])):
n9 = conv(n, 9)
n27 = conv(n, 27)
if n9 == n9[::-1] and n27 == n27[::-1]:
res.append((n, sum(int(z) for z in conv(n, 8))))
res.sort()
for n, s in res:
print(n, s)
Ответ:
\(4257368 \,\, 17\)
\(3922573402 \,\, 34\)
\(3922632451 \,\, 38\)
\(7834562453 \,\, 53\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


