Отражается ли как-то на производительность операция возведения в степень? Python
Написал небольшой скрипт, который находит все делители числа.
V = 100000000000000
D = []
d = 2
while (d ** 2 <= V):
if V % d == 0:
D.append(d)
d_new = V // d
if d_new != d:
D.append(d_new)
d += 1
Начал проверять его скорость, огорчился. Попробовал его как-то оптимизировать, но ничего не получилось. Потом решил поменять операцию возведения в степень на простое умножение.
V = 100000000000000
D = []
d = 2
while (d * d <= V):
if V % d == 0:
D.append(d)
d_new = V // d
if d_new != d:
D.append(d_new)
d += 1
И как оказалось, скорость кода увеличилась более чем в 2 раза. Проверял через timeit.
1 код: 4.419626179999978
2 код: 2.0235268200000065
Почему так происходит, ведь по идее умножение и возведение в степень (в данном случае) - это одно и то же действие?