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