Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
– символ «?» означает ровно одну произвольную чётную цифру;
– символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность. Например, маске \(123{*}4?5\) соответствуют числа \(123405\) и \(12300405\).
Среди натуральных чисел, не превышающих \(10^{8}\), найдите все числа, соответствующие маске \(7?23?64{*}8\), делящиеся на \(2026\) без остатка. В ответе запишите все найденные числа в порядке возрастания.
Решение:
Python
def valid(n):
even = '02468'
s = str(n)
return s[0] == '7' and s[1] in even and s[2:4] == '23' \
and s[4] in even and s[5:7] == '64' and s[-1] == '8'
n = 70230648 + 2026 - 70230648 % 2026
for x in range(n, 10**10, 2026):
if valid(x):
print(x)
Ответ:
\(782386498\)
\(7023064168\)
\(7023864438\)
\(7623064068\)
\(7623864338\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене