Алгоритм решения задания 15. Часть 3
Учимся решать 15 задания третьего типа
Читать
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
– символ «?» означает ровно одну произвольную цифру;
– символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300405.
Среди натуральных чисел, не превышающих 1010, найдите все числа, соответствующие маске 54?1?3*7, делящиеся на 18579 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им результаты деления этих чисел на 18579.
from fnmatch import fnmatch
for i in range(5401037 - 5401037 % 18579, 10 ** 10, 18579):
if fnmatch(str(i), '54?1?3*7'):
print(i, i // 18579)
