Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
— символ «?» означает ровно одну произвольную цифру;
— символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 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

