In [1]:
from euler import gen_triangular
from euler import gen_lt
from euler import get_factors
from euler import product
In [2]:
list(gen_lt(gen_triangular(), 100))
Out[2]:
In [3]:
def terse(x):
f = {}
for i in x:
if i not in f:
f[i] = 0
f[i] += 1
return f
In [4]:
def foo(n):
for t in gen_triangular():
if product(map((lambda x: x+1), terse(get_factors(t)).values())) > n:
return t
In [5]:
n = 500
%timeit foo(n)
foo(n)
Out[5]: