Задание 25. Информатика. ЕГЭ. Статград. 24.10.2024-1
- Просмотры: 301
- Изменено: 24 ноября 2024
Пусть \(M (N)\) – сумма \(2\) наибольших различных натуральных делителей натурального числа \(N\), не считая самого числа и единицы. Если у числа \(N\) меньше \(2\) таких делителей, то \(M (N)\) считается равным \(0.\)
Найдите все такие числа \(N\), что \(110~250~000 \leqslant N \leqslant 110~300~000\), а десятичная запись числа \(M (N)\) заканчивается на \(1002.\)
В ответе перечислите все найденные числа \(N\) в порядке возрастания.
Решение:
Python
def M(n):
s = set()
for i in range(2, int(n**0.5) + 1):
if n % i == 0:
s.add(i)
s.add(n // i)
tmp = sorted(list(s))
if len(tmp) < 2:
return 0
return tmp[-1] + tmp[-2]
for N in range(110_250_000, 110_300_001):
if M(N) % 10000 == 1002:
print(N)
Ответ:
\(110254175\)
\(110271687\)
\(110275397\)
\(110281336\)