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

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

Решение:

Python


for n in range(3):
    for k in range(10**n):
        for x in range(10):
            for y in range(10):
                z = 12 * 10**(5+n) + k * 10**5 + 63 * 10**3 + x * 100 + 50 + y
                if z % 3123 == 0:
                    print(z)

Ответ:
\(12363957\)
\(120663351\)
\(120963159\)
\(124763850\)
\(125063658\)