Задание 25. Информатика. Статград 2023-1-2

Маска числа — это последовательность цифр, в которой могут встречаться специальные символы «?» и «*». Символ «?» означает ровно одну произвольную цифру, символ «*» означает произвольную (в том числе пустую) последовательность цифр.
Пример. Маске \(123*4?5\) соответствуют числа \(123405\) и \(12376415\).
Найдите все натуральные числа, не превышающие \(10^{10}\), которые соответствуют маске \(1?954*21\) и при этом без остатка делятся на \(3023\).
В ответе запишите все найденные числа в порядке возрастания.

Решение:

Python


for n in range(4):
    for k in range(10):
        for i in range(10**n):
            x = 10**(6 + n) + k * 10**(5 + n) + 954 * 10**(2 + n) + i * 10**2 + 21
            if x % 3023 == 0:
                print(x)

Ответ:
\(1895421\)
\(1295437121\)
\(1395498421\)
\(1795441321\)