Здесь я встречаю проблему, чтобы проверить факторы простого числапроверки простые множители числа
# using python2.7.10
from math import sqrt
def isprime(x):
if x == 1:
return False
k = int(sqrt(x))
for j in range(2,k+1):
if x%j == 0:
return False
return True
num = input("please input a number:")
for i in range(2, num):
if i!= num and num % i == 0:
print i,
Если я ввести номер 45, он печатает 3,5,9,15. Тем не менее, 3 является фактором 9 и 15, 5 - фактором 15. Надеюсь, что результаты будут 3, 5. Как я могу изменить свой код, чтобы достичь своей цели?
Найти простые числа от '2' до' sqrt (x) ', используя Сито Эратосфена, затем перебирать только эти * простые числа *; как только вы найдете фактор, вы можете * разделить его на него. –