Skip to content

Instantly share code, notes, and snippets.

@jakedobkin
jakedobkin / gist:1421545
Created December 2, 2011 03:06
Euler 28
#!/usr/local/bin/node
/* this is the pattern formed by the diagonals
ring 2 -- 2+ ([+1] + 3 + [+2] + 5 + [+2] + 7 + [+2])+ 9
ring 3 -- 10+([+3] + 13 + [+4] + 17 + [+4] + 21 + [+4])+25
where the numbers in brackets increase by 2 each time
how many rings? well ring 1 is a 1x1
and then every ring after adds 2 columns or rows
so by ring 2 you have 3 rows and 3 columns
@jakedobkin
jakedobkin / gist:1411845
Created November 30, 2011 23:28
Euler 27
#!/usr/local/bin/node
// prime sieve from problem 9
n=2000000;
sumPrimes=0;
myPrimes = new Array();
for (i=2;i<=n;i++)
{
myPrimes[i]=true;
@jakedobkin
jakedobkin / gist:1411151
Created November 30, 2011 21:55
Euler 26
# we know the period of a repeating decimal p is always less than p
# so we can count down- when we find a big repeater, we save it
# and stop counting when i is less than biggest period
i = 1000
biggest_period = 0
while (i > 0):
#compute the order of 10 modulo p
j = 1
@jakedobkin
jakedobkin / gist:1410384
Created November 30, 2011 19:17
Euler 22 With QuickSort
#!/usr/local/bin/node
// declare an array to hold this list
names = ["MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL","RUTH","SHARON","MICHELLE","LAURA","SARAH","KIMBERLY","DEBORAH","JESSICA","SHIRLEY","CYNTHIA","ANGELA","MELISSA","BRENDA","AMY","ANNA","REBECCA","VIRGINIA","KATHLEEN","PAMELA","MARTHA","DEBRA","AMANDA","STEPHANIE","CAROLYN","CHRISTINE","MARIE","JANET","CATHERINE","FRANCES","ANN","JOYCE","DIANE","ALICE","JULIE","HEATHER","TERESA","DORIS","GLORIA","EVELYN","JEAN","CHERYL","MILDRED","KATHERINE","JOAN","ASHLEY","JUDITH","ROSE","JANICE","KELLY","NICOLE","JUDY","CHRISTINA","KATHY","THERESA","BEVERLY","DENISE","TAMMY","IRENE","JANE","LORI","RACHEL","MARILYN","ANDREA","KATHRYN","LOUISE","SARA","ANNE","JACQUELINE","WANDA","BONNIE","JULIA","RUBY","LOIS","TINA","PHYLLIS","NORMA","PAULA","DIANA","ANNIE","LILLIAN","EMILY","ROBIN","PEGGY","CRYSTAL","GLADYS","RITA","DAWN","CONNIE","FLORENCE","TRAC
@jakedobkin
jakedobkin / gist:1398715
Created November 28, 2011 01:31
Euler 25
# set initial terms in fib sequence
a = 1
b = 1
c = 0
string = ""
count = 3
# generate fib sequence until you get a number with 1000 digits
@jakedobkin
jakedobkin / gist:1398194
Created November 27, 2011 21:38
Euler 24
#!/usr/local/bin/node
count = 0;
permutations = new Array();
while(count <= 1000000) {
for(a=0;a<=9;a++){
for(b=0;b<=9;b++){
for(c=0;c<=9;c++){
for(d=0;d<=9;d++){
#!/usr/local/bin/node
// declare an array to hold abundants, and also one to hold sum of two abundants
abundants = new Array();
sieve = new Array();
// set abundants[i] = true if i is abundant
for (i=1;i<=28123;i++)
@jakedobkin
jakedobkin / gist:1395151
Created November 26, 2011 06:14
Euler 22
#!/usr/local/bin/node
// declare an array to hold this list
names = ["MARY","PATRICIA","LINDA","BARBARA","ELIZABETH","JENNIFER","MARIA","SUSAN","MARGARET","DOROTHY","LISA","NANCY","KAREN","BETTY","HELEN","SANDRA","DONNA","CAROL","RUTH","SHARON","MICHELLE","LAURA","SARAH","KIMBERLY","DEBORAH","JESSICA","SHIRLEY","CYNTHIA","ANGELA","MELISSA","BRENDA","AMY","ANNA","REBECCA","VIRGINIA","KATHLEEN","PAMELA","MARTHA","DEBRA","AMANDA","STEPHANIE","CAROLYN","CHRISTINE","MARIE","JANET","CATHERINE","FRANCES","ANN","JOYCE","DIANE","ALICE","JULIE","HEATHER","TERESA","DORIS","GLORIA","EVELYN","JEAN","CHERYL","MILDRED","KATHERINE","JOAN","ASHLEY","JUDITH","ROSE","JANICE","KELLY","NICOLE","JUDY","CHRISTINA","KATHY","THERESA","BEVERLY","DENISE","TAMMY","IRENE","JANE","LORI","RACHEL","MARILYN","ANDREA","KATHRYN","LOUISE","SARA","ANNE","JACQUELINE","WANDA","BONNIE","JULIA","RUBY","LOIS","TINA","PHYLLIS","NORMA","PAULA","DIANA","ANNIE","LILLIAN","EMILY","ROBIN","PEGGY","CRYSTAL","GLADYS","RITA","DAWN","CONNIE","FLORENCE","TRAC
@jakedobkin
jakedobkin / gist:1394238
Created November 25, 2011 19:14
Euler 21
#!/usr/local/bin/node
// declare an array to hold the sums of factors for all numbers below 10,000
sums = new Array();
// fill array with sums of all "proper divisors" at each i
for (i=1;i<=10000;i++)
{
@jakedobkin
jakedobkin / gist:1392176
Created November 24, 2011 20:02
Euler 20
# set initial variable to hold the number we want to factorial
initial = 100
print initial,"! is equal to"
# do the factorial
i = initial
while (i > 0):
initial = initial * i