Skip to content

Instantly share code, notes, and snippets.

@shieldsd
shieldsd / euler21.py
Created March 30, 2012 13:55
Project Euler #21
from math import sqrt
def divisors(n):
for x in xrange(1, int(sqrt(n)) + 1):
if n % x == 0:
yield x
if x != 1 and x * x != n:
yield n / x
def amicable(n):
@shieldsd
shieldsd / euler22.py
Created March 30, 2012 13:57
Project Euler #22
names = sorted(open('names.txt').readline().replace('"', '').split(','))
print sum(((i + 1) * sum(ord(c) - ord('A') + 1 for c in n)
for (i, n) in enumerate(names)))
@shieldsd
shieldsd / euler23.py
Created March 30, 2012 13:59
Project Euler #23
from math import sqrt
def divisors(n):
for x in xrange(1, int(sqrt(n)) + 1):
if n % x == 0:
yield x
if x != 1 and x * x != n:
yield n / x
abundants = set()
@shieldsd
shieldsd / euler24.py
Created March 30, 2012 14:08
Project Euler #24
from itertools import islice
def comb(l):
if len(l) == 0:
yield []
else:
for i in range(len(l)):
for c in comb(l[:i] + l[i + 1:]):
yield [l[i]] + c
@shieldsd
shieldsd / euler25.py
Created March 30, 2012 14:09
Project Euler #25
from itertools import takewhile
def fib():
a, b = 1, 1
while 1:
yield a
a, b = b, a + b
print sum(1 for _ in takewhile(lambda x: len(str(x)) < 1000, fib()))
@shieldsd
shieldsd / euler26.py
Created March 30, 2012 14:11
Project Euler #26
def seqlen(n):
rem = []
x = 1
while 1:
x = (10 * x) % n
if x == 1:
rem.append(x)
break
elif x == 0:
break
@shieldsd
shieldsd / euler27.py
Created March 30, 2012 14:14
Project Euler #27
from itertools import takewhile
from itertools import count
from math import sqrt
def isprime(n):
for x in range(2, int(sqrt(n)) + 1):
if n % x == 0:
return 0
return 1
@shieldsd
shieldsd / euler28.py
Created March 30, 2012 14:15
Project Euler #28
def spiral(n):
max = n * n
s = 1
n = 1
i = 2
while n <= max:
for j in range(4):
if n >= max:
return s
else:
@shieldsd
shieldsd / euler29.py
Created March 30, 2012 14:17
Project Euler #29
def combs(low, high):
result = []
i = low
j = low
while i <= high:
while j <= high:
result.append(i ** j)
j += 1
i += 1
j = low
@shieldsd
shieldsd / euler30.py
Created March 30, 2012 14:22
Project Euler #30
print sum(x for x in range(2, 9 ** 5 * 5)
if x == sum(int(c) ** 5 for c in str(x)))