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