From 0b71e251a114d2342f10c9c75c5a170d736ad0af Mon Sep 17 00:00:00 2001 From: ChristopherSegale Date: Mon, 4 Mar 2013 22:10:50 -0500 Subject: [PATCH 1/7] Solving problem 5 --- Problem005/problem005.py | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/Problem005/problem005.py b/Problem005/problem005.py index 8868d99..1d6a740 100755 --- a/Problem005/problem005.py +++ b/Problem005/problem005.py @@ -3,29 +3,25 @@ # Date: 3/3/2013 def is_divisible_by(n, divisor): - return not n % divisor - -def is_inner_loop_running(smallest_multiple, divisor): - if not is_divisible_by(smallest_multiple, divisor): - return False - else: - return True + return n % divisor == 0 def smallest_multiple(low, high): smallest_multiple = 1 is_loop = True + divisor = low while is_loop: - for x in range(low, high + 1): - is_loop_running = is_inner_loop_running(smallest_multiple, x) - if not is_loop_running: - smallest_multiple+= 1 - x = low - elif is_loop_running and x == high: + while divisor < high + 1: + if not is_divisible_by(smallest_multiple, divisor): + divisor = low + smallest_multiple += 1 + elif is_divisible_by(smallest_multiple, divisor): is_loop = False - + divisor += 1 + return smallest_multiple +# Gives solution, but takes really long to compute it def main(): print smallest_multiple(1, 20) From 8bfadf5083fd92d18818800cafc5c47f447e432b Mon Sep 17 00:00:00 2001 From: ChristopherSegale Date: Mon, 4 Mar 2013 22:55:31 -0500 Subject: [PATCH 2/7] Solving problem 6 --- Problem006/problem006.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 Problem006/problem006.py diff --git a/Problem006/problem006.py b/Problem006/problem006.py new file mode 100755 index 0000000..57809e8 --- /dev/null +++ b/Problem006/problem006.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python +# Author: Christopher Segale +# Date: 3/4/2013 + +def square_sum(num_list): + return sum(num_list) ** 2 + +def sum_square(num_list): + total = 0 + + for index in range(0, len(num_list)): + total += num_list[index] ** 2 + + return total + +def main(): + my_list = [] + square_of_sum = 0 + sum_of_squares = 0 + difference = 0 + + for x in range(1, 101): + my_list.append(x) + + square_of_sum = square_sum(my_list) + sum_of_squares = sum_square(my_list) + difference = square_of_sum - sum_of_squares + + print difference + +if __name__ == '__main__': + main() From 25b9b2b85513598fa3f28cd5aa327d6d103949dc Mon Sep 17 00:00:00 2001 From: ChristopherSegale Date: Mon, 4 Mar 2013 23:18:09 -0500 Subject: [PATCH 3/7] Adding link to Project Euler --- README | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README b/README index b7a6df4..c96e687 100644 --- a/README +++ b/README @@ -1,3 +1,5 @@ Author: Christopher Segale This is a repository to store the solutions I have for Project Euler that I solve for using python. + +Link to Project Euler: http://www.projecteuler.net/ From c2427cec23a375e86ba4ab3c45503037cf9083e8 Mon Sep 17 00:00:00 2001 From: ChristopherSegale Date: Sun, 10 Mar 2013 17:00:17 -0400 Subject: [PATCH 4/7] Solving Problem 7 --- Problem007/problem007.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 Problem007/problem007.py diff --git a/Problem007/problem007.py b/Problem007/problem007.py new file mode 100755 index 0000000..a0deafd --- /dev/null +++ b/Problem007/problem007.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +# Author: Christopher Segale +# Date: 3/4/2013 + +def is_prime(n): + index = 1 + + while index < n: + if n % index == 0 and index != 1: + return False + index += 1 + + return True + +def find_prime(n): + number = 1 + prime_number = 2 + + while number < n + 1: + if is_prime(prime_number): + number += 1 + if number < n + 1: + prime_number += 1 + + return prime_number + +def main(): + print find_prime(10001) # takes too long to reach solution + +if __name__ == '__main__': + main() From 7596bfdf357cba6ae94510960cac147551f3c3f3 Mon Sep 17 00:00:00 2001 From: ChristopherSegale Date: Sun, 10 Mar 2013 22:04:37 -0400 Subject: [PATCH 5/7] Adding textfile containing 1000 digit number --- Problem008/list.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 Problem008/list.txt diff --git a/Problem008/list.txt b/Problem008/list.txt new file mode 100644 index 0000000..f58457e --- /dev/null +++ b/Problem008/list.txt @@ -0,0 +1 @@ +7316717653133062491922511967442657474235534919493496983520312774506326239578318016984801869478851843858615607891129494954595017379583319528532088055111254069874715852386305071569329096329522744304355766896648950445244523161731856403098711121722383113622298934233803081353362766142828064444866452387493035890729629049156044077239071381051585930796086670172427121883998797908792274921901699720888093776657273330010533678812202354218097512545405947522435258490771167055601360483958644670632441572215539753697817977846174064955149290862569321978468622482839722413756570560574902614079729686524145351004748216637048440319989000889524345065854122758866688116427171479924442928230863465674813919123162824586178664583591245665294765456828489128831426076900422421902267105562632111110937054421750694165896040807198403850962455444362981230987879927244284909188845801561660979191338754992005240636899125607176060588611646710940507754100225698315520005593572972571636269561882670428252483600823257530420752963450 From 374ecb1d8eda6ab01f06c51e1981b89062a51957 Mon Sep 17 00:00:00 2001 From: ChristopherSegale Date: Sun, 10 Mar 2013 22:05:18 -0400 Subject: [PATCH 6/7] Solving Problem 8 --- Problem008/problem008.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 Problem008/problem008.py diff --git a/Problem008/problem008.py b/Problem008/problem008.py new file mode 100755 index 0000000..bb9a3ed --- /dev/null +++ b/Problem008/problem008.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python +# Author: Christopher Segale +# Date: 3/10/2013 + +def main(): + of = open("list.txt") + numbers = of.read() + of.close() + + max_product = 0 + number_one = 0 + number_two = 0 + number_three = 0 + number_four = 0 + number_five = 0 + product = 0 + + for index in range(0, len(numbers) - 5): + number_one = int(numbers[index]) + number_two = int(numbers[index + 1]) + number_three = int(numbers[index + 2]) + number_four = int(numbers[index + 3]) + number_five = int(numbers[index + 4]) + product = number_one * number_two * number_three * number_four * number_five + if max_product < product: + max_product = product + + print max_product + +if __name__ == '__main__': + main() From 0cfe10ac14774dceb5b9d95eb37256087fd16713 Mon Sep 17 00:00:00 2001 From: ChristopherSegale Date: Mon, 11 Mar 2013 16:52:37 -0400 Subject: [PATCH 7/7] Solving Problem 9 --- Problem009/problem009.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100755 Problem009/problem009.py diff --git a/Problem009/problem009.py b/Problem009/problem009.py new file mode 100755 index 0000000..aa59d6a --- /dev/null +++ b/Problem009/problem009.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python +# Author: Christopher Segale +# Date: 3/11/2013 + +def main(): + is_loop = True + a = 1 + b = a + + while a < 1000 / 3 and is_loop: + b = a + while b < 1000 / 2 and is_loop: + c = 1000 - a - b + + if ((a ** 2) + (b ** 2)) == (c ** 2): + is_loop = False + print a * b * c + break + b += 1 + a += 1 + +if __name__ == '__main__': + main()