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

Просмотры: 415
Изменено: 18 января 2025

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

Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12376415.\)

Найдите все натуральные числа, принадлежащие интервалу \([10^8; \, 2 \cdot 10^8],\) которые соответствуют маске \({?}{*}42{*}81\) и имеют ровно три натуральных делителя. В ответе запишите все найденные числа в порядке возрастания.

Решение:

Python


from fnmatch import fnmatch

for x in range(10**4, int(2**0.5 * 10**4) + 1):
    q = x**2
    if fnmatch(str(q), '?*42*81'):
        print(q)

Ответ:
\(104223681\)
\(113614281\)
\(114297481\)
\(141824281\)
\(142587481\)
\(144216081\)
\(149842081\)
\(166642281\)
\(171374281\)