Задание 25. Информатика. ЕГЭ 2024. Резерв. 18.06.2024
- Просмотры: 110
- Изменено: 25 ноября 2024
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы
— символ «?» означает ровно одну произвольную цифру;
— символ «*» означает любую последовательность цифр произвольной длины, в том числе «*» может задавать и пустую последовательность.
Например, маске \(123*4?5\) соответствуют числа \(123405\) и \(12300405\).
Среди натуральных чисел, не превышающих \(10^{10}\), найдите все числа, соответствующие маске \(89*4?5?7?\), делящиеся на \(8993\) без остатка. В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие результаты деления этих чисел на \(8993\).
Количество строк в таблице для ответа избыточно.
Решение:
Python
from fnmatch import fnmatch
n = 89405070 - 89405070 % 8993 + 8993
for x in range(n, 10**10, 8993):
if fnmatch(str(x), '89*4?5?7?'):
print(x, x // 8993)
Ответ:
\(8912485671 \,\, 991047\)
\(8915435375 \,\, 991375\)
\(8917485779 \,\, 991603\)
\(8934455570 \,\, 993490\)
\(8937405274 \,\, 993818\)
\(8939455678 \,\, 994046\)
\(8958475873 \,\, 996161\)
\(8961425577 \,\, 996489\)
\(8980445772 \,\, 998604\)