I’m assuming you meant set n = 49
.
Your outer while loop checks the condition i * i < n
, which is not true for i == 7
, so the outer loop breaks as soon as it hits 7
. Change the <
to <=
.
However, your code isn’t correct in the first place– perhaps something like this is what you meant?
n = 600851475143
i = 2
factors = []
while (i <= n):
while (n % i == 0):
n = n / i
factors.append(i)
i = i + 1
print factors
11
solved Project Euler #3 Python