Пусть \(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(x >= y for x, y in zip(S, S[1:])):
q += 1
print(n, S)
if q == 5:
break
Ответ:
\(10003808 \,\, 8753332\)
\(10004330 \,\, 8432221\)
\(10004824 \,\, 8754221\)
\(10005064 \,\, 8754431\)
\(10005127 \,\, 999761\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене