Пусть \(S (N)\) – сумма двух наибольших нетривиальных делителей числа \(N\) (не считая единицы и самого числа). Если у числа \(N\) меньше двух таких делителей, то \(S (N)\) считается равным \(0.\) Найдите \(5\) наименьших натуральных чисел, превышающих \(10~000~000,\) для которых \(S (N)\) меньше, чем \(100~000,\) и кратно \(31.\) В ответе запишите найденные числа в порядке возрастания, справа от каждого числа запишите соответствующее ему значение \(S(N).\)
Решение:
Python
from math import isqrt
q = 0
for n in range(10_000_001, 10**100):
divs = list({d for x in range(2, isqrt(n) + 1) if n % x == 0
for d in (x, n // x)})
if len(divs) >= 2:
divs.sort()
S = divs[-1] + divs[-2]
if S < 100_000 and S % 31 == 0:
q += 1
print(n, S)
if q == 5:
break
Ответ:
\(10001029 \,\, 67270\)
\(10001099 \,\, 50964\)
\(10001371 \,\, 63860\)
\(10001773 \,\, 45074\)
\(10002673 \,\, 21886\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене