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