Тип 25 № 64910 
Обработка целочисленной информации. Маска числа
i
Маска числа — это последовательность цифр, в которой могут встречаться специальные символы «?» и «*». Символ «?» означает ровно одну произвольную цифру, символ «*» означает произвольную (в том числе пустую) последовательность цифр.
Например, маске 123*4?5 соответствуют числа 123405 и 12376415.
Найдите все натуральные числа, не превышающие 1010, которые соответствуют маске 1*4022?9 и при этом без остатка делятся на 1987.
В ответе запишите все найденные числа в порядке возрастания.
Решение. Будем последовательно рассматривать каждое целое число, кратное 1987, затем каждое число проверять на соответствие маске.
Приведём решение на языке Python.
from fnmatch import *
for x in range(0, 10**10, 1987):
# Перебираем все числа от 0 с шагом 1987, будут получены числа кратные 1987
if fnmatch(str(x), '1*4022?9'):
# Проверяем полученное число соответствию заданию
print(x)
В результате работы программа должна вывести следующее:
1001402299
1108402249
1484402259
1591402209
1860402269
1967402219
Ответ: 1001402299&1108402249&1484402259&1591402209&1860402269&1967402219
64910
1001402299 1108402249 1484402259 1591402209 1860402269 1967402219