Задача № 182
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
- символ «?» означает ровно одну произвольную цифру;
- символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5
соответствуют числа 123405
и 12300405
.
Среди натуральных чисел, не превышающих 1011
, найдите все числа, соответствующие маске 123*45??1?
, делящиеся на 98591
без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им результаты деления этих чисел на 98591
.
Количество строк в таблице для ответа избыточно.

ЕГКР 27 апреля 2024 года (Московский пробник)
Прокрути, чтобы прочитать решение задачи
Ты уверен, что хочешь это сделать?
Удачного чтения!
Решение
Код из видео
# испортируем стандартную библиотеку
from fnmatch import fnmatch
# переберием все числа, кратные 98591
for n in range(0, 10**11, 98591):
# проверяем соответствие маске
if fnmatch(str(n), '123*45??1?'):
# выводим ответ
print(n, n // 98591)