Задание 25. Информатика. ЕГЭ. Статград. 04.03.2025

Просмотры: 250
Изменено: 5 марта 2025

Маска числа – это последовательность цифр, в которой могут встречаться специальные символы «\(?\)» и «\(*\)». Символ «\(?\)» означает ровно одну произвольную цифру, символ «\(*\)» означает произвольную (в том числе пустую) последовательность цифр. Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12376415.\)

Найдите все натуральные числа, не превышающие \(10^9,\) которые соответствуют маске \(4{?}28{*}8{*}3\) и при этом без остатка делятся на \(9111.\) В ответе запишите все найденные числа в порядке возрастания.

Решение:

Python


from fnmatch import fnmatch

n = 402883
r = n % 9111
n += 9111 - r if r else 0

for x in range(n, 10**9, 9111):
    if fnmatch(str(x), '4?28*8*3'):
        print(x)

Ответ:
\(482883\)
\(422868843\)
\(472888233\)