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

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

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

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

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

Среди натуральных чисел, не превышающих 108  , найдите все числа, соответствующие маске 8??61*3, делящиеся на 4321 без остатка и частные от деления найденных чисел на 4321.

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

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

Ответ: 81161343 18783 84661353 19593 88161363 20403
Оцените статью
Я решу все!