Пусть M(N) – произведение 5 наименьших различных натуральных делителей натурального числа N, не считая единицы. Если у числа N меньше 5 таких делителей, то M(N) считается равным нулю.
Найдите 5 наименьших натуральных чисел, превышающих 500 000 000, для которых .
В ответе запишите найденные значения M(N) в порядке возрастания соответствующих им чисел N.
counter = 0
x = 500000001
while counter < 5: # пока кол-во подходящих чисел меньше 5
d = set() # множество делителей числа
for i in range(2, int(x ** 0.5) + 1):
if x % i == 0:
d |= {i, x // i}
if len(d) >= 5: # если кол-во делителей больше и равно 5
d = sorted(d)[:5] # берем 5 наименьших делителей
p = 1 # произведение делителей
for i in d: # проход по делителям
p *= i
if 0 < p < x:
print(p) # вывод произведения
counter += 1 # увеличение подходящих чисел
x += 1 # увеличение текущего числа
Ответ: 1008 1797092 48408867 1800 1156923