25 задание демо ЕГЭ 2025 (2 часть)
2 вариант 25 задания из демоверсии ЕГЭ 2025 года. Поиск чисел в заданном интервале по маске и делителю.
Условие
Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
– символ «?» означает ровно одну произвольную цифру;
– символ «*» означает любую последовательность цифр произвольной длины; в том числе «*» может задавать и пустую последовательность.
Например, маске 123*4?5 соответствуют числа 123405 и 12300405.
Среди натуральных чисел, не превышающих 1010, найдите все числа, соответствующие маске 3?12?14*5, делящиеся на 1917 без остатка.
В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – соответствующие им результаты деления этих чисел на 1917.
Решение
Пожалуй, основная сложность этого задания в уменьшении времени работы программы. Это можно сделать, уменьшив количество перебираемых чисел.
По условию, интервал чисел – от 1 до 1010 включительно. Найдём минимальное число, кратное 1917, равное либо превышающее минимальное по маске и от него будем проверять числа на соответствие маске с шагом 1917.
Чтобы найти минимальное число, соответствующее маске, заменим в ней “?” на 0, а “*” – на пустую последовательность. Получаем 30 120 145. Это число не делится без остатка на 1 917:
30 120 145 : 1 917 = 15 712,126
Определим ближайшее, превышающее его число, кратное 1917:
(15 712 + 1) * 1917 = 30 121 821
Иначе, через целочисленное деление:
(30120145 // 1917 + 1) * 1917

Остаётся перевести число в строку

и проверить соответствие маске.

Выводим результат для записи ответа

Программа

Результат
351261495 | 183235 |
3212614035 | 1675855 |
3412614645 | 1780185 |
3712414275 | 1936575 |
3912414885 | 2040905 |