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

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

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

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

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

Среди натуральных чисел, не превышающих 109  , найдите все числа, соответствующие маске 11*777*0, делящиеся на 8450 без остатка.

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

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

Ответ: 114877750 13595 115477700 13666 117776100 13938
Оцените статью
Я решу все!