繁体   English   中英

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

[英]compare two similar python code (Project Euler # 3)

我有两个代码来解决Project Euler #3

第一个是

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 语句中打印出来。 但是这两者的执行速度有很大的不同。 谁能解释为什么?

在第一种情况下, max = a 是一个赋值,它需要一些额外的时间来计算,你应该没有太大的区别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM