def lcm_n(n): if n == 2: return 2 prev_lcm = lcm_n(n-1) prev_factors = fns.generate_prime_factors(prev_lcm) new_factors = fns.generate_prime_factors(n) fact_prod = fact_diff(prev_factors, new_factors) return fact_prod * prev_lcm
series = [0, 1] while max(series) < limit: series.append(sum(series[-2:])) return series[:-1] fib_series = fib_limit(limit) output = sum([i for i in fib_series if (i % 2 == 0)]) print "Euler 2:", output, print "T:", time() - start; start = time() # 3. prime factorization import math num = 600851475143 prime_factors = fns.generate_prime_factors(num) print "Euler 3:", max(prime_factors), print "T:", time() - start; start = time() # 4. Largest palindrome num_range = range(900, 1000) def is_palindrome(num): return str(num) == str(num)[::-1] all_palindromes = [] for i in num_range: for j in num_range: product = i * j
print "Euler 49:", spc_list, print "T:", time.time() - start; start = time.time() nmax = 1000; tot = 0 for i in xrange(1, nmax + 1): tot += i ** i print "Euler 48:", str(tot)[-10:], print "T:", time.time() - start; start = time.time() nmax = 1000000; jmax = 4; i = 10 while i < nmax: prime_facts = [len(set(fns.generate_prime_factors(x))) == jmax for x in xrange(i - jmax, i)] if all(prime_facts): break i += 1 print "Euler 47:", i - jmax, print "T:", time.time() - start; start = time.time() def find_odd_comps(nmax): all_comps = [] for i in xrange(3, nmax, 2): if(not fns.is_prime(i)): all_comps.append(i) return all_comps nmax = 10000