這是我的分解代碼,用於查找數字的所有因素,但在大約7位數後,程序開始減慢。優化分解程序
所以我想知道是否有任何方法來優化這個程序,讓它更快地分解數字。
number = int(input("Input the whole number here?\n"))
factors = [1]
def factorization():
global factors
for i in range(1 , number):
factor = (number/i)
try:
factorInt = int(number/i)
if factorInt == factor:
factors.append(factorInt)
except ValueError:
pass
factorization()
print(factors)
可能不是一個很大的改進,但爲什麼你在'try'語句中做'number/i'而不是'使用'factor'兩次? – DyZ
你是否研究過這個?你應該先嚐試一下。兩個簡單的優化 - 你不需要檢查以上sqrt(數字),你不需要檢查2以後的偶數。 – pvg