Тип 25 № 89762 
Обработка целочисленной информации. Нахождение делителей
i
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
— символ «?» означает ровно одну произвольную цифру;
— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300405.
Среди натуральных чисел, не превышающих 1010, найдите все числа, соответствующие маске 89*6?7?9?, делящиеся на 9874 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им результаты деления этих чисел на 9874.
Количество строк в таблице для ответа избыточно.
Решение. ##Приведём решение на языке Python.
from fnmatch import *
for x in range(0, 10**10, 9874):
# Перебираем все числа от 0 с шагом 9874, будут получены числа кратные 9874
if fnmatch(str(x), '89*6?7?9?'):
# Проверяем полученное число соответствию заданию
print(x, x//9874)
В результате работы программа должна вывести следующее:
8901677598 901527
8905627198 901927
8912617990 902635
8941667298 905577
8952607690 906685
8970607992 908508
8988647790 910335
Ответ: 8901677598&901527&8905627198&901927&8912617990&902635&8941667298&905577&8952607690&906685&8970607992&908508&8988647790&910335
89762
8901677598 901527 8905627198 901927 8912617990 902635 8941667298 905577 8952607690 906685 8970607992 908508 8988647790 910335