def run(): vals = [] for i in euler_util.numbers(1): factors = [p for p in euler_util.prime_factors(i)] if len(factors) == 4: vals.append(i) print vals if len(vals) == 4: print vals return else: vals = []
import euler_util value = 600851475143 print max([x[0] for x in euler_util.prime_factors(value)])
def count_divisors(val): ''' divisors can be calculated quickly by using the prime factorization ''' pfactors = euler_util.prime_factors(val) return reduce(lambda x,y: x * y, [c + 1 for (f,c) in pfactors], 1)