Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [300000; 333000], числа, имеющие ровно 3 различных натуральных делителя. Запишите такие числа через пробел, в порядке возрастания.
def divs(n): # функция возращающая список делителей числа
d = set()
for j in range(1, int(n ** 0.5) + 1):
if n % j == 0:
d.add(j)
d.add(n//j)
if len(d) > 3: # для оптимизации выходим из функции если кол-во делителей больше 3
return d
return sorted(d)
for i in range(300000, 333000 + 1):
if len(divs(i)) == 3:
print(i)
Ответ: 310249 316969 323761 326041 332929