In [1]:
!factor 600851475143 | rev | awk '{print $1}' | rev
In [2]:
import math
def largest_factor(x):
factors = []
factor = 2
while factor <= math.sqrt(x):
while x % factor == 0:
factors.append(factor)
x /= factor
factor += 1
if x != 1:
factors.append(x)
return factors
In [3]:
%timeit largest_factor(600851475143)
In [4]:
def largest_factor(x):
factors = []
factor = 2
while factor * factor <= x:
while x % factor == 0:
factors.append(factor)
x /= factor
factor += 1
if x != 1:
factors.append(x)
return factors
In [5]:
%timeit largest_factor(600851475143)
In [6]:
largest_factor(1000)
Out[6]:
In [7]:
largest_factor(600851475143)
Out[7]:
In [8]:
largest_factor(600851475143)[-1]
Out[8]: