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

Просмотры: 353
Изменено: 2 февраля 2025

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

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

Решение:

Python


from fnmatch import fnmatch

n = 405073 + (9341 - 405073 % 9341)
for x in range(n, 10**9, 9341):
    if fnmatch(str(x), '4?5*07*3'):
        print(x)

Ответ:
\(495073\)
\(48507813\)
\(405707653\)
\(495007613\)
\(495568073\)