Задание 25. Информатика. ЕГЭ. ЕГКР. 21.12.2024
- Просмотры: 457
- Изменено: 29 января 2025
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
– символ «?» означает ровно одну произвольную цифру; – символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12300405\).
Среди натуральных чисел, не превышающих \(10^{10}\), найдите все числа, соответствующие маске \(54{?}1{?}3{*}7\), делящиеся на \(18579\) без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им результаты деления этих чисел на \(18579\).
Количество строк в таблице для ответа избыточно.
Решение:
Python
from fnmatch import fnmatch
n = 5401037
n += 18579 - n % 18579
for x in range(n, 10**10, 18579):
if fnmatch(str(x), '54?1?3*7'):
print(x, x // 18579)
Ответ:
\(545163597 \,\, 29343\)
\(5411932647 \,\, 291293\)
\(5421036357 \,\, 291783\)
\(5451134337 \,\, 293403\)
\(5461538577 \,\, 293963\)
\(5481232317 \,\, 295023\)
\(5491636557 \,\, 295583\)