(А. Богданов) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12300425.\)
Найдите все натуральные числа, не превышающие \(10^{10},\) которые соответствуют маске \(1{?}1{?}1{?}1{*}1\) и при этом без остатка делятся на \(2023,\) а сумма цифр каждого числа равна \(22.\) В ответе запишите все найденные числа в порядке возрастания, справа от каждого запишите частное от его деления на \(2023.\)
Решение:
Python
from itertools import product
res = []
for k in range(3):
for p in product('0123456789', repeat=k):
for a in range(10):
for b in range(10):
for c in range(10):
ns = f"1{a}1{b}1{c}1{''.join(p)}1"
n = int(ns)
if n % 2023 == 0 and sum(int(z) for z in ns) == 22:
res.append((n, n // 2023))
res.sort()
for n, d in res:
print(n, d)
Ответ:
\(19131511 \,\, 9457\)
\(1012141291 \,\, 500317\)
\(1319111311 \,\, 652057\)
\(1516111051 \,\, 749437\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене