Исправьте вывод работы кода
Назовём натуральное число подходящим, если у него ровно 3 различных простых делителя.
Например, число 180 подходящее (его простые делители — 2, 3 и 5),
а число 12 — нет (у него только два различных простых делителя).
Определите количество подходящих чисел, принадлежащих отрезку [50001; 90000], а также наименьшее из таких чисел.
В ответе запишите два целых числа: сначала количество, затем наименьшее число.
sp = set()
k=0
m=90001
for i in range(50001,90001):
for j in range(2,int(i**0.5)+1):
if i%j==0:
sp.add(j)
if len(sp)==3:
k+=1
if i<m:
m=i
break
sp.clear()
print(k,m)
ответ:
15587 50001мой ответ:
25287 50001
первое число не сходится,нет проверки на простоту делителя, как ее реализовать?
Ответы (1 шт):
Автор решения: S. Nick
→ Ссылка
Попробуйте так:
k = 0
m = 90001
def simpleDividers(n):
answer = []
d = 2
while d * d <= n:
if n % d == 0:
answer.append(d)
n //= d
else:
d += 1
if n > 1:
answer.append(n)
return answer
for i in range(50001, 90001):
if len(set(simpleDividers(i))) == 3:
k += 1
if i < m:
m = i
print(k, m)