【发布时间】:2017-09-11 16:16:08
【问题描述】:
这是我的因式分解代码,用于查找一个数字的所有因数,但在大约 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? -
你研究过这个吗?你应该先试试。两个微不足道的优化 - 您不需要检查 sqrt(number) 上面的内容,也不需要检查 2 之后的偶数。
标签: python optimization factors