Задание 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\)