Информатика. ЕГЭ
Задания для подготовки
Задачи разных лет из реальных экзаменов, демо-вариантов, сборников задач и других источников
Задание 25. Информатика. ЕГЭ. Поляков-7962
- Просмотры: 453
- Изменено: 29 января 2026
(А. Кабанов) Обозначим через \(D(N)\) наименьший простой делитель целого числа, оканчивающийся на \(777\) и не равный самому числу. Если таких делителей у числа нет, то считаем значение \(D(N)\) равным нулю. Найдите наименьшие \(4\) числа, большие \(55~000~000,\) для которых \(D(N) > 0.\) В ответе запишите найденные числа в порядке возрастания значений \(D(N),\) справа от каждого запишите соответствующее значение \(D(N).\)
Решение:
Python
def is_prime(n):
if n < 2:
return False
if n == 2:
return True
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
def D(n):
divs = set()
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
d = n // i
if is_prime(i):
divs.add(i)
if is_prime(d):
divs.add(d)
tmp = [x for x in divs if x % 1000 == 777]
return min(tmp) if tmp else 0
q = 0
n = 55_000_000
ans = []
while q < 4:
n += 1
d = D(n)
if d > 0:
ans.append((d, n))
q += 1
ans.sort()
for d, n in ans:
print(n, d)
Ответ:
\(55001704 \,\, 1777\)
\(55001262 \,\, 2777\)
\(55000662 \,\, 9166777\)
\(55001554 \,\, 27500777\)
Обсуждение задания
Здесь пока нет ни одного комментария. Будьте первым!


