Задача к ЕГЭ по информатике на тему «Маски» №2

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:

– символ «?» означает ровно одну произвольную цифру;

– символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.

Например, маске 123*4?5 соответствуют числа 123405 и 12300405.

Среди натуральных чисел, не превышающих 109  , найдите все числа, соответствующие маске ?6?9*56, делящиеся на 12233 без остатка и частные от деления найденных чисел на 12233.

В ответ запишите пары найденных чисел (найденное число и частное от деления на 12233) в порядке возрастания через пробел.

# для оптимизации делаем цикл с шагом 12233, начиная с числа кратного 12233, для того чтобы проходиться по числам кратным 12233
for x in range(12233, 10**9+1, 12233):
    s = str(x)
    if (s[1] == ’6’) and (s[3] == ’9’) and (s[-2] == ’5’) and (s[-1] == ’6’): # проверка, что число соответствует маске
        print(x, x // 12233)

Ответ: 16294356 1332 167983556 13732 260954356 21332 364934856 29832 468915356 38332 660973456 54032 764953956 62532 868934456 71032 961905256 78632
Оцените статью
Я решу все!