Найдите числа большие \(2000000,\) сумма и произведение делителей которых нечётны. В ответе укажите наименьшие \(6\) таких чисел, количество делителей которых больше \(30.\) В ответе запишите найденные числа в порядке возрастания, справа от каждого числа запишите его наибольший делитель, являющийся простым числом.
Решение:
Python
from math import isqrt
def is_prime(n):
if n <= 2:
return 2
if n & 1 == 0:
return False
for x in range(3, isqrt(n) + 1, 2):
if n % x == 0:
return False
return True
q = 0
for n in range(2_000_001, 10**100, 2):
divs = {d for x in range(2, isqrt(n) + 1) if n % x == 0
for d in (x, n // x)}
if len(divs) > 30 and len(divs) % 2 == 1:
q += 1
print(n, max(d for d in divs if is_prime(d)))
if q == 6:
break
Ответ:
\(2030625 \,\, 19\)
\(2099601 \,\, 23\)
\(2205225 \,\, 11\)
\(2480625 \,\, 7\)
\(2614689 \,\, 11\)
\(2772225 \,\, 37\)
Эффективно готовьтесь к ЕГЭ по информатике с новым тренажёром, эмулирующем работу станции КЕГЭ, которая используется на реальном экзамене