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

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

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

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

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

Среди натуральных чисел, не превышающих 109  , найдите все числа, соответствующие маске ?4?8*15?5, делящиеся на 4215 без остатка и частные от деления найденных чисел на 4215.

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

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

Ответ: 94681545 22463 143811585 34119 247871505 58807 248891535 59049 443801565 105291 444821595 105533 548881515 130221 744811575 176705 849891525 201635
Оцените статью
Я решу все!