Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [100100; 300300], числа,имеющие ровно 3 различных натуральных делителя, не считая единицы и самого числа. Вывести на экран количество таких чисел.
def divs(x): # функция возврающая список делителей числа
d = set()
for i in range(2,int(x**0.5)+1):
if x % i == 0:
d.add(i)
d.add(x//i)
if len(d) > 3: # для оптимизации выходим из функции если кол-во делителей больше 3
return d
return sorted(d)
count = 0
for x in range(100100,300301):
d = divs(x)
if len(d) == 3:
count += 1
print(count)
Ответ: 2