Skip to content

Instantly share code, notes, and snippets.

@jakedobkin
jakedobkin / gist:1515446
Created December 23, 2011 21:47
Euler Problem 69
# http://projecteuler.net/problem=69
# first set up a special sieve- factors[j] is the totient for each number
factors = [1]*1000001
n=1000000
myPrimes = [True]*(n+1)
last = 0
for i in range (2,n):
if myPrimes[i] == True:
j = 2*i
@jakedobkin
jakedobkin / gist:1514569
Created December 23, 2011 16:05
Problem 67
# http://projecteuler.net/problem=67
# i wrote problem 18 in javascript- http://projecteuler.net/index.php?section=problems&id=18, https://gist.github.com/1380694, so i rewrote it here in python
file = open('triangle.txt','r').readlines()
# this opens the file, cleans it of the line breaks, and then imports it into a 2D array
for i in range (0,len(file)):
file[i]=file[i][0:-2]
array=[]
for j in range (0,len(file)):
@jakedobkin
jakedobkin / gist:1508137
Created December 21, 2011 23:10
Euler 66
# http://projecteuler.net/problem=66
# this is kind of a bear- it combines all the continued fraction stuff
# but it runs in 147ms
import math
squares=[]
for i in range (1,101):
squares.append(i*i)
@jakedobkin
jakedobkin / gist:1503279
Created December 20, 2011 21:08
Euler 65
# pattern in convergents of e
# 1 + 2 * 1 = 3
# 2 + 3 * 2 = 8
# 3 + 8 * 1 = 11
# new term = two terms ago + one term ago * i
def make_e(n):
CF = [2]
c = 1
while len(CF)<n:
@jakedobkin
jakedobkin / gist:1502372
Created December 20, 2011 17:19
Project Euler 64
import math
squares=[]
for i in range (1,10000):
squares.append(i*i)
def CF_of_sqrt(n):
# modified this from http://eli.thegreenplace.net/2009/06/19/project-euler-problem-66-and-continued-fractions/
# who got it from http://www.maths.surrey.ac.uk/hosted-sites/R.Knott/Fibonacci/cfINTRO.html#sqrtalgsalg
if n in squares:
@jakedobkin
jakedobkin / gist:1499430
Created December 19, 2011 23:34
Euler 63
# pretty straightforward- but i'll leave the math here to you
count = 0
for a in range (1,10):
for b in range (1,30):
if len(str(a**b))==b:
count+=1
print count
@jakedobkin
jakedobkin / gist:1498852
Created December 19, 2011 21:00
Euler 62: Complete
# http://projecteuler.net/problem=62
def cube(n):
return n*n*n
def hash(n):
string = str(n)
numbers = []
for i in range(0,len(string)):
numbers.append(string[i:i+1])
@jakedobkin
jakedobkin / gist:1494765
Created December 18, 2011 23:06
Euler 61
# http://projecteuler.net/problem=61
# this should run in 500ms
import itertools
# these are the formulas for the six polygonal numbers
def fn(n):
return [n*(n+1)/2,n*n,n*(3*n-1)/2,n*(2*n-1),n*(5*n-3)/2,n*(3*n-2)]
# this is what we'll use for the cyclic pattern matching
@jakedobkin
jakedobkin / gist:1493918
Created December 18, 2011 16:55
Euler 60- Kind of a Monster Brute
# set up prime sieve to n
n=10000
myPrimes = [True]*(n+1)
last = 0
for i in range (2,n):
if myPrimes[i] == True:
j = 2*i
while j<=n:
myPrimes[j]=False
@jakedobkin
jakedobkin / gist:1491723
Created December 17, 2011 23:06
Euler 59: Crytography
# http://projecteuler.net/problem=59
code = [79,59,12,2,79,35,8,28,20,2,3,68,8,9,68,45,0,12,9,67,68,4,7,5,23,27,1,21,79,85,78,79,85,71,38,10,71,27,12,2,79,6,2,8,13,9,1,13,9,8,68,19,7,1,71,56,11,21,11,68,6,3,22,2,14,0,30,79,1,31,6,23,19,10,0,73,79,44,2,79,19,6,28,68,16,6,16,15,79,35,8,11,72,71,14,10,3,79,12,2,79,19,6,28,68,32,0,0,73,79,86,71,39,1,71,24,5,20,79,13,9,79,16,15,10,68,5,10,3,14,1,10,14,1,3,71,24,13,19,7,68,32,0,0,73,79,87,71,39,1,71,12,22,2,14,16,2,11,68,2,25,1,21,22,16,15,6,10,0,79,16,15,10,22,2,79,13,20,65,68,41,0,16,15,6,10,0,79,1,31,6,23,19,28,68,19,7,5,19,79,12,2,79,0,14,11,10,64,27,68,10,14,15,2,65,68,83,79,40,14,9,1,71,6,16,20,10,8,1,79,19,6,28,68,14,1,68,15,6,9,75,79,5,9,11,68,19,7,13,20,79,8,14,9,1,71,8,13,17,10,23,71,3,13,0,7,16,71,27,11,71,10,18,2,29,29,8,1,1,73,79,81,71,59,12,2,79,8,14,8,12,19,79,23,15,6,10,2,28,68,19,7,22,8,26,3,15,79,16,15,10,68,3,14,22,12,1,1,20,28,72,71,14,10,3,79,16,15,10,68,3,14,22,12,1,1,20,28,68,4,14,10,71,1,1,17,10,22,71,10,28,19,6,10,0,26,13,20,7,68,14,27,74,