Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 25. Информатика. ЕГЭ. Поляков-8851
- Просмотры: 510
- Изменено: 14 февраля 2026
(Ю. Дрождинин) Назовём маской числа последовательность цифр, в которой также могут встречаться следующие символы:
- символ «\(?\)» означает ровно одну произвольную цифру;
- символ «\(*\)» означает любую последовательность цифр произвольной длины; в том числе «\(*\)» может задавать и пустую последовательность.
Например, маске \(123{*}4{?}5\) соответствуют числа \(123405\) и \(12300405.\)
Пусть так же \(M\) – сумма минимального и максимального натуральных делителей целого числа, не считая единицы и самого числа. Если таких делителей у числа нет, то значение \(M\) признаётся равным нулю. Среди натуральных чисел, не превышающих \(10^{10},\) найдите все числа, соответствующие маске \(3{?}67{*}2{?}1,\) делящиеся на \(1861\) без остатка, для которых \(M\) оканчивается на \(52.\) В ответе запишите в первом столбце таблицы все найденные числа в порядке возрастания, а во втором столбце – наибольший делитель для каждого из них.
Решение:
Python
from fnmatch import fnmatch
def M(n):
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
return {i, n // i}
return set()
st = 3067201 + (1861 - 3067201 % 1861) % 1861
for x in range(st, 10**10, 1861):
m = M(x)
if fnmatch(str(x), '3?67*2?1') and sum(m) % 100 == 52:
print(x, max(m))
Ответ:
\(3167405251 \,\, 1701991\)
\(3867141251 \,\, 4244941\)
\(3967635251 \,\, 2131991\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


