Задача #1516
Делители и маски
(М. Ишимов) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
- символ «?» означает ровно одну произвольную цифру;
- символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300405.
Среди натуральных чисел, не превышающих 109, найдите все числа, соответствующие маске ?46?44*2, делящиеся на 6718 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им результаты деления этих чисел на 6718.
Войдите, чтобы история ответов и статистика сохранялись.
Решение
Ответ
146244142
21769
146344912
21784
246644652
36714
346944392
51644
from fnmatch import *
for n in range(6718, 10 ** 9 + 1, 6718):
if fnmatch(str(n), '?46?44*2'):
print(n, n // 6718)