(Д. Муфаззалов) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12300405.\)
Найдите все натуральные числа, не превосходящие число \(2023^2,\) соответствующие маске \({*}2{*}0{*}2{*}3{*},\) записи которых в системах счисления с основаниями \(2\) и \(8\) являются палиндромами. В ответе запишите все найденные числа в порядке возрастания, а справа от каждого числа — сумму цифр в его записи в системе счисления с основанием \(8.\)
Решение:
Python
for n in range(2023, 2023**2 + 1):
ns = str(n)
a = ns.find('2')
b = ns.find('0', a)
c = ns.find('2', b)
d = ns.find('3', c)
if a >= 0 and b > 0 and c > 0 and d > 0:
n2 = bin(n)[2:]
n8 = oct(n)[2:]
if n2 == n2[::-1] and n8 == n8[::-1]:
print(n, sum(int(z) for z in n8))
Ответ:
\(2008239 \,\, 30\)
\(2023279 \,\, 41\)
\(2029039 \,\, 40\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене