From 5c98788b8dbbf45c2621cc0d712c4053c7e14ac8 Mon Sep 17 00:00:00 2001 From: Reiner Herrmann Date: Mon, 19 Oct 2009 16:59:13 +0200 Subject: added some more project euler solutions --- src/projecteuler/007.py | 20 + src/projecteuler/009.py | 7 + src/projecteuler/010.py | 20 + src/projecteuler/012.c | 37 + src/projecteuler/013.py | 14 + src/projecteuler/013.txt | 100 + src/projecteuler/014.py | 21 + src/projecteuler/019.py | 17 + src/projecteuler/021.c | 35 + src/projecteuler/022.py | 18 + src/projecteuler/022.txt | 5163 ++++++++++++++++++++++++++++++++++++++++++++++ src/projecteuler/048.py | 6 + 12 files changed, 5458 insertions(+) create mode 100644 src/projecteuler/007.py create mode 100644 src/projecteuler/009.py create mode 100644 src/projecteuler/010.py create mode 100644 src/projecteuler/012.c create mode 100644 src/projecteuler/013.py create mode 100644 src/projecteuler/013.txt create mode 100644 src/projecteuler/014.py create mode 100644 src/projecteuler/019.py create mode 100644 src/projecteuler/021.c create mode 100644 src/projecteuler/022.py create mode 100644 src/projecteuler/022.txt create mode 100644 src/projecteuler/048.py diff --git a/src/projecteuler/007.py b/src/projecteuler/007.py new file mode 100644 index 0000000..63d565a --- /dev/null +++ b/src/projecteuler/007.py @@ -0,0 +1,20 @@ +prime_list = [2] + +def is_prime(number): + global prime_list + prime = True + for x in prime_list: + if number % x == 0: + prime = False + break + return prime + +count = 3 + +while(len(prime_list) < 10001): + if is_prime(count): + prime_list.append(count) + count += 2 + +print prime_list[-1] + diff --git a/src/projecteuler/009.py b/src/projecteuler/009.py new file mode 100644 index 0000000..f122a7a --- /dev/null +++ b/src/projecteuler/009.py @@ -0,0 +1,7 @@ +for a in range(1,1000): + for b in range(a, 1000): + c = 1000 - a - b + if a*a + b*b == c*c: + print a*b*c + break + diff --git a/src/projecteuler/010.py b/src/projecteuler/010.py new file mode 100644 index 0000000..1a4a194 --- /dev/null +++ b/src/projecteuler/010.py @@ -0,0 +1,20 @@ +limit = 2000000 + +number_list = [False] +for i in range(2, limit+1): + number_list.append(True) + +for i in range(2, limit+1): + x = i*2 + while(x <= len(number_list)): + number_list[x-1] = False + x += i + +sum = 0 + +for i in range(1, limit+1): + if number_list[i-1]: + sum += i + +print sum + diff --git a/src/projecteuler/012.c b/src/projecteuler/012.c new file mode 100644 index 0000000..c5cc49e --- /dev/null +++ b/src/projecteuler/012.c @@ -0,0 +1,37 @@ +#include + +int count_divisors(unsigned int triangle) +{ + unsigned int i; + int count = 2; + int limit = (int) ceil(sqrt(triangle)); + for(i=2; i max_len: + max_start = i + max_len = len + +print max_start + diff --git a/src/projecteuler/019.py b/src/projecteuler/019.py new file mode 100644 index 0000000..187b45e --- /dev/null +++ b/src/projecteuler/019.py @@ -0,0 +1,17 @@ +days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] + +day = 7 # first sunday in 1900 +count = 0 + +for year in range(1900, 2001): + for month in range(1, 13): + if day == 1 and year >= 1901: + count += 1 + if month == 2 and year % 4 == 0: + day -= 1 + while(day <= days[month-1]): + day += 7 + day -= days[month-1] + +print count + diff --git a/src/projecteuler/021.c b/src/projecteuler/021.c new file mode 100644 index 0000000..e236cf3 --- /dev/null +++ b/src/projecteuler/021.c @@ -0,0 +1,35 @@ +#include + +int sum_divisors(int number) +{ + int i; + int sum = 1; + int limit = (int) ceil(sqrt(number)); + for(i=2; i