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

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

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

– символ «&» означает пару четных произвольных цифр;

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

Например, маске 123&4?5 соответствуют числа 12340405 и 12322405.

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

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

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

Ответ: 118926960 3288 218900840 6052 418920940 11582 618904870 17111 818924970 22641
Оцените статью
Я решу все!