Пусть \(S(N)\) – сумма трёх наибольших нетривиальных делителей числа \(N\) (не считая единицы и самого числа). Если у числа \(N\) меньше трёх таких делителей, то \(S(N)\) считается равным \(0.\) Найдите \(5\) наименьших натуральных чисел, превышающих \(10~000~000,\) для которых в десятичной записи \(S(N)\) все цифры расположены в порядке неубывания. В ответе запишите найденные числа в порядке возрастания, справа от каждого числа запишите соответствующее ему значение \(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) >= 3:
divs.sort()
S = str(sum(divs[-3:]))
if all(y >= x for x, y in zip(S, S[1:])):
q += 1
print(n, S)
if q == 5:
break
Ответ:
\(10001975 \,\, 2569999\)
\(10002217 \,\, 467999\)
\(10002535 \,\, 2444457\)
\(10003761 \,\, 4457789\)
\(10005003 \,\, 4446677\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене