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

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

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

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

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

Среди натуральных чисел, не превышающих 107  , найдите все числа, соответствующие маске ?75*47?, делящиеся на 290 без остатка.

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

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

Ответ: 1752470 6043 3753470 12943 5754470 19843 7755470 26743 9756470 33643
Оцените статью
Я решу все!