Особыми будем называть нетривиальные делители числа, сумма цифр которых равна \(20.\) Нетривиальными считаются все делители, кроме \(1\) и самого числа. Пусть \(D(N)\) – шестой по величине (считая с наибольшего) особый делитель натурального числа \(N.\) Если у числа \(N\) меньше \(6\) различных особых делителей, то принимаем \(D(N) = 0.\) Найдите \(5\) наименьших натуральных чисел, превышающих \(400~000~000,\) для которых \(D(N) > 0.\) В ответе запишите для каждого найденного \(N\) сначала значение \(D(N),\) а затем общее количество особых делителей (в порядке возрастания соответствующих чисел \(N).\)
Решение:
Python
from math import isqrt
def divs(N: int) -> int:
ds = {d for x in range(2, isqrt(N) + 1) if N % x == 0
for d in (x, N // x) if sum(int(z) for z in str(d)) == 20}
ds = sorted(list(ds))
return ds
q = 0
N = 400_000_000
while q < 5:
N += 1
d = divs(N)
if len(d) > 5:
print(d[-6], len(d))
q += 1
Ответ:
\(965 \,\, 6\)
\(2756 \,\, 6\)
\(14960 \,\, 9\)
\(5285 \,\, 9\)
\(9380 \,\, 7\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене