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