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