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