In [1]:
!factor 600851475143 | rev | awk '{print $1}' | rev
In [2]:
!factor 600851475143 | awk '{print $NF}'
In [3]:
import math
def get_factors(x):
'''Returns of prime factors of x in ascending order.'''
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 [4]:
n = 600851475143
In [5]:
get_factors(n)
Out[5]:
In [6]:
def foo(x):
return get_factors(x)[-1]
In [7]:
%timeit foo(n)
foo(n)
Out[7]:
In [8]:
def get_factors(x):
'''Returns of prime factors of x in ascending order.'''
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 [9]:
%timeit foo(n)
foo(n)
Out[9]:
In [10]:
get_factors(1000)
Out[10]:
In [11]:
get_factors(600851475143)
Out[11]:
In [12]:
get_factors(600851475143)[-1]
Out[12]:
In [13]:
def get_factors(x):
'''Returns of prime factors of x in ascending order.'''
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 [14]:
from euler import get_factors2
get_factors = get_factors2
In [15]:
%timeit foo(n)
foo(n)
Out[15]:
In [16]:
from euler import get_factors3
get_factors = get_factors3
In [17]:
%timeit foo(n)
foo(n)
Out[17]:
In [18]:
from euler import get_factors4
get_factors = get_factors4
In [19]:
%timeit foo(n)
foo(n)
Out[19]:
In [20]:
from euler import get_factors
In [21]:
%timeit foo(n)
foo(n)
Out[21]:
In [22]:
from euler import get_factors5
get_factors = get_factors5
In [23]:
%timeit foo(n)
foo(n)
Out[23]:
In [24]:
from euler import canonical_decomposition2
foo = canonical_decomposition2
%timeit foo(n)
foo(n)
Out[24]:
In [25]:
from euler import canonical_decomposition3
foo = canonical_decomposition3
%timeit foo(n)
foo(n)
Out[25]:
In [26]:
from euler import canonical_decomposition4
foo = canonical_decomposition4
%timeit foo(n)
foo(n)
Out[26]:
In [27]:
from euler import canonical_decomposition5
foo = canonical_decomposition5
%timeit foo(n)
foo(n)
Out[27]:
In [28]:
from euler import canonical_decomposition
foo = canonical_decomposition
%timeit foo(n)
foo(n)
Out[28]: