比较两个相似的python代码(Project Euler#3)

问题描述 投票:0回答:1

我有两个代码。

第一个是

x = 600851475143
a = 2
max = 0
while a < x:
    for i in range (2, int(a**0.5)+1):
        if a % i == 0:
            break
    else:
        if x % a == 0 : max = a
    a += 1
print(max)

第二个是

x = 600851475143
a = 2
max = 0
while a < x:
    for i in range (2, int(a**0.5)+1):
        if a % i == 0:
            break
    else:
        if x % a == 0 : print(a)
    a += 1

两者都是用python编写的

正如你们所看到的那样,唯一不同的是我是否将最终值放在变量'max'中并稍后打印出来或者只是在if语句中打印出来。但是这两者的执行速度有很大不同。有谁能解释为什么?

python execution
1个回答
0
投票

在第一种情况下,有max = a这是一个分配,需要一些额外的时间来计算,它不应该是你的很多差异。

© www.soinside.com 2019 - 2024. All rights reserved.