Python Solutions to [http://projecteuler.net/index.php?section=problems Project Euler].
Index TableOfContents(2)
Problem 1: Add all the natural numbers below 1000 that are multiples of 3 or 5.
http://projecteuler.net/index.php?section=problems&id=1
def multiples_of_3_or_5(): for number in xrange(1000): if not number % 3 or not number % 5: yield number print sum(multiples_of_3_or_5())
Problem 2: Find the sum of all the even-valued terms in the Fibonacci sequence which do not exceed one million.
http://projecteuler.net/index.php?section=problems&id=2
def fib(): x,y = 1,1 while True: yield x x,y = y, x+y def even(seq): for number in seq: if not number % 2: yield number def under_a_million(seq): for number in seq: if number > 1000000: break yield number print sum(even(under_a_million(fib())))
Problem 3: Find the largest prime factor of 317584931803.
http://projecteuler.net/index.php?section=problems&id=3
plist = [2] def primes(min, max): global plist if 2 >= min: yield 2 i = 3 while i <= max: for p in plist: if i%p == 0 or p*p > i: break if i%p: plist.append(i) if i >= min: yield i i = i+2 def factors(number): for prime in primes(2, number): if number % prime == 0: number = number / prime yield prime if number == 1: raise StopIteration print max(factors(317584931803))