这是我的分解代码,用于查找数字的所有因素,但在大约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