Задание 25. Информатика. ЕГЭ. Шастин. 19.01.2025
- Просмотры: 683
- Изменено: 1 февраля 2025
(Д. Бахтиев) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
- символ «\(?\)» означает ровно одну произвольную цифру;
- символ «\(*\)» означает любую последовательность цифр произвольной длины; в том числе «\(*\)» может задавать и пустую последовательность;
- символ «Н» означает ровно одну нечётную цифру;
- символ «Ч» означает ровно одну чётную цифру:
Например, маске 1Ч3*4?Н соответствуют числа \(123405\) и \(12300405.\)
Среди натуральных чисел, не превышающих \(10^{10}\), найдите все числа, соответствующие маске Ч9?23?*23НЧ и делящиеся на \(1984\) без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им результаты деления этих чисел на \(1984.\) Количество строк в таблице для ответа избыточно.
Решение:
Python
from fnmatch import fnmatch
n = 2902302310 + (1984 - 2902302310 % 1984)
for x in range(n, 10**10, 1984):
xs = str(x)
if int(xs[0]) % 2 == 0 and int(xs[-2]) % 2 and int(xs[-1]) % 2 == 0 \
and fnmatch(xs[1:-2], '9?23?*23'):
print(x, x // 1984)
Ответ:
\(2902302336 \,\, 1462854\)
\(4912342336 \,\, 2475979\)
\(6922382336 \,\, 3489104\)
\(6932302336 \,\, 3494104\)
\(8912332352 \,\, 4492103\)
\(8942342336 \,\, 4507229\)