Пусть \(M(N)\) – сумма двух наибольших различных натуральных делителей натурального числа \(N,\) не считая самого числа и единицы. Если у числа \(N\) меньше двух таких делителей, то \(M(N)\) считается равным \(0.\) Найдите все такие числа \(N,\) что $$256~250~000 \leqslant N \leqslant 256~300~000,$$ а десятичная запись числа \(M(N)\) заканчивается на \(1008.\) В ответе перечислите все найденные числа \(N\) в порядке возрастания, справа от каждого запишите соответствующее значение \(M.\)
Решение:
Python
def sum_div(n):
div = set()
for i in range(2, int(n**0.5)+1):
if n % i == 0:
div.add(i)
div.add(n//i)
div = list(div)
div.sort()
return div[-2] + div[-1] if len(div) > 1 else 0
for N in range(256_250_000, 256_300_001):
M = sum_div(N)
if M % 10000 == 1008:
print(N, M)
Ответ:
\(256255901 \,\, 28131008\)
\(256257767 \,\, 4201008\)
\(256262087 \,\, 181008\)
\(256264817 \,\, 23341008\)
\(256281344 \,\, 192211008\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене