Задание 25. Информатика. ЕГЭ. Шастин. 13.03.2025
- Просмотры: 259
- Изменено: 15 марта 2025
(Л. Шастин) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
- символ «?» означает ровно одну произвольную цифру;
- символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12300405.\)
Среди натуральных чисел, не превышающих \(10^9,\) найдите все числа, соответствующие маске \(34{*}56{?}7,\) делящиеся на \(4321\) без остатка, произведение цифр которых оканчивается на \(0.\) В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце — соответствующие им произведения их цифр. Количество строк в таблице для ответа избыточно.
Решение:
Так как в маске \(34{*}56{?}7\) присутствуют цифры \(5\) и \(6,\) то произведение цифр любого числа, удовлетворяющего этой маске, будет оканчиваться на \(0.\)
Python
from fnmatch import fnmatch
start = 345607 + (4321 - 345607 % 4321) % 4321
for n in range(start, 10**9, 4321):
ns = str(n)
if fnmatch(ns, '34*56?7'):
prod = 1
for ch in ns:
prod *= int(ch)
print(n, prod)
Ответ:
\(341475667 \,\, 423360\)
\(344975677 \,\, 4445280\)
\(348475687 \,\, 4515840\)