сравнить два одинаковых кода Python (Project Euler # 3) - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть два кода.

первый -

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. Но есть большая разница в скорости выполнения этих двух. Кто-нибудь может объяснить почему?

1 Ответ

0 голосов
/ 05 сентября 2018

В первом случае есть max = a, которое является присваиванием, для вычисления которого требуется дополнительное время, разница не должна быть большой.

...