0
我创建了以下脚本的主要因素,找出了许多的主要因素:我不知道这是否是做的最好的和有效的方式逻辑找出一些
def check_if_no_is_prime(n):
if n <= 3:
return True
else:
limit = int(math.sqrt(n))
for i in range(2,limit + 1):
if n % i == 0:
return False
return True
def find_prime_factors(x):
prime_factors = []
if check_if_no_is_prime(x):
prime_factors.append(1)
prime_factors.append(x)
else:
while x % 2 == 0 and x > 1:
prime_factors.append(2)
x = x // 2
for i in range(3,x+1,2):
while x % i == 0 and x > 1:
if check_if_no_is_prime(i):
prime_factors.append(i)
x = x // i
if x <= 1:
return prime_factors
return prime_factors
no = int(input())
check = find_prime_factors(no)
print (check)
这个 ? 有人可以指出任何更好的方法来做到这一点?
退房http://codereview.stackexchange.com有吨的例子。 –
我投票结束这个问题作为题外话,因为它是一个代码审查网站重复。 –
这绝对是错误的,因为1不是素数。 – noel