Задание 25. Информатика. ЕГЭ. Шастин. 30.11.2024

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

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:

  • символ «?» означает ровно одну произвольную цифру;
  • символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.

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

Среди натуральных чисел, не превышающих \(10^{10}\), найдите все числа, делящиеся на \(2025\) без остатка и соответствующие обеим маскам: \(33?2{*}42?\) и \({*}32??2?.\)

В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им результаты деления этих чисел на \(2025\).

Количество строк в таблице для ответа избыточно.

Решение:

Python


from fnmatch import fnmatch

a = []
n1 = 3302420 - (3302420 % 2025) + 2025

for x in range(n1, 10**10, 2025):
    if fnmatch(str(x), '33?2*42?'):
        a.append(x)

n2 = 320020 - (320020 % 2025) + 2025
for x in range(n2, 10**10, 2025):
    if x in a and fnmatch(str(x), '*32??2?'):
        print(x, x // 2025)

Ответ:
\(33325425 \,\, 16457\)
\(3302323425 \,\, 1630777\)