为什么程序需要这么长时间才能运行?

时间:2020-01-30 07:40:01

标签: python

我正在尝试使用Python解决来自Euler项目的问题。当j的范围很大时,为什么我的代码要花这么长时间运行。当j的范围较小时,它就可以正常工作。

enter image description here

2 个答案:

答案 0 :(得分:2)

由于您的程序有2个完全循环的for循环,因此程序时间复杂度为O(n ** 2),因此预计需要很长时间,因此可以在代码中进行一些优化:

import math

def is_prime(number):
    for i in range(2, int(math.sqrt(number) + 1)):               
       if (number % i) == 0: 
           return False
    return True

答案 1 :(得分:0)

从逻辑上考虑,范围越大,j的迭代/循环数越大。再一次,输入给is_prime的j的单个数目越大,i循环也越大。这样就增加了运行时间。

您的i循环需要更聪明。一旦计数大于2,是否需要再检查i个数字是否为j的因子? ;)