Пусть \(D(N)\) – шестой по величине (считая с наибольшего) нетривиальный чётный делитель натурального числа \(N\) (нетривиальными считаются все делители, кроме \(1\) и самого числа). Например, \(D(1000) = 40.\) Если у числа \(N\) меньше \(6\) различных нетривиальных чётных делителей, то принимаем \(D(N) = 0.\) Найдите \(5\) наименьших натуральных чисел, превышающих \(300~000~000,\) для которых \(D(N) > 0.\) В ответе запишите для каждого найденного \(N\) сначала значение \(D(N),\) а затем общее количество нетривиальных чётных делителей (в порядке возрастания соответствующих чисел \(N).\)
Решение:
Python
from math import isqrt
q = 0
for n in range(300_000_001, 10**100):
divs = {d for x in range(2, isqrt(n) + 1) if n % x == 0
for d in (x, n // x)}
even = [x for x in divs if x % 2 == 0]
if len(even) >= 6:
even.sort()
q += 1
print(even[-6], len(even))
if q == 5:
break
Ответ:
\(4 \,\, 7\)
\(405954 \,\, 23\)
\(13636364 \,\, 23\)
\(10344828 \,\, 47\)
\(118 \,\, 7\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене