Skip to content

Instantly share code, notes, and snippets.

@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 / 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 / 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 / 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 / euler20.py
Created March 22, 2012 09:37
Project Euler #20
def fact(n):
s = 1
while n > 0:
s = s * n
n -= 1
return s
print sum(int(c) for c in str(fact(100)))
@shieldsd
shieldsd / euler19.sh
Created March 22, 2012 09:36
Project Euler #19
#!/bin/ksh
count=0
for year in {1901..2000}; do
for month in {1..12}; do
if cal $month $year | cut -b1,2 | grep ' 1' > /dev/null; then
((count = $count + 1))
fi
done
done
echo $count
@shieldsd
shieldsd / euler18.py
Created March 22, 2012 09:34
Project Euler #18
tn = [
[75],
[95,64],
[17,47,82],
[18,35,87,10],
[20, 4,82,47,65],
[19, 1,23,75, 3,34],
[88, 2,77,73, 7,63,67],
[99,65, 4,28, 6,16,70,92],
[41,41,26,56,83,40,80,70,33],
@shieldsd
shieldsd / euler17.py
Created March 22, 2012 09:32
Project Euler #17
def say_digit(n):
number = ''
if n == 1:
number = 'one'
elif n == 2:
number = 'two'
elif n == 3:
number = 'three'
elif n == 4:
number = 'four'
@shieldsd
shieldsd / euler16.py
Created March 22, 2012 09:26
Project Euler #16
print sum(int(c) for c in str(2**1000))
@shieldsd
shieldsd / euler15.py
Created March 16, 2012 10:00
Project Euler #15
def fact(n):
s = 1
while n > 0:
s = s * n
n -= 1
return s
print fact(20 * 2) / (fact(20) * fact(20))