Это не так.
Это просто hella long, а вы уменьшаете на 1
вот вывод:
(...)
12 print(n)
13 n-=1
(...)
600850312864
600850312863
600850312862
600850312861
600850312860
600850312859
600850312858
600850312857
600850312856
600850312855
600850312854
Вот решение , которое даст вам желаемый результат [71, 839, 1471, 6857]
nn=600851475143
def prime_factors(number):
factors = []
divisor = 2
while(number > 2):
if (number % divisor == 0):
factors.append(divisor)
number = number / divisor
else:
divisor += 1
return factors
print(prime_factors(nn))