Задание 25. Информатика. ЕГЭ. Шастин. 18.10.2024

Просмотры: 99
Изменено: 24 ноября 2024

Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:

– символ «\(?\)» означает ровно одну произвольную цифру;
– символ «\(\#\)» означает любую последовательность чётных цифр произвольной длины; в том числе «\(\#\)» может задавать и пустую последовательность.

Например, маске \(123\#4?5\) соответствуют числа \(123405\) и \(12300405\).

Среди натуральных чисел, не превышающих \(10^{10}\), найдите все числа, соответствующие маске \(1592\#6?8\) и делящиеся на \(1996\) без остатка.

В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им результаты деления этих чисел на \(1996\).

Количество строк в таблице для ответа избыточно.

Решение:

Python


n = 1592608 + 1996 - (1592608 % 1996)
while n < 10**10:
    ns = str(n)
    sharp = ns[4:-3]
    if ns[:4] == '1592' and (sharp == '' or all(int(x) % 2 == 0 for x in sharp)) \
       and ns[-3] == '6'and ns[-1] == '8':
        print(n, n // 1996)
    n += 1996

Ответ:
\(1592464688 \,\, 797828\)
\(1592484648 \,\, 797838\)