From 66a8d4abaa9edf421f9ddce10837ae7a8f0c52c4 Mon Sep 17 00:00:00 2001 From: Julien Lengrand-Lambert Date: Mon, 16 Jan 2012 17:01:51 +0100 Subject: [PATCH] Solves problem 12, 15, 21, 48 Searches solution for problem 18 Problem 12 takes like 6 hours to process. Should be enhanced ! --- e_12.py | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/e_12.py b/e_12.py index dd583bb..fa7717f 100755 --- a/e_12.py +++ b/e_12.py @@ -1,7 +1,7 @@ #!/usr/bin/env python """ ##--- - # airballman + # Julien Lengrand #Created on : Sun Jan 15 22:35:08 CET 2012 # # DESCRIPTION : Solves problem 12 of Project Euler @@ -17,13 +17,35 @@ 28: 1,2,4,7,14,28 We can see that 28 is the first triangle number to have over five divisors. What is the value of the first triangle number to have over five hundred divisors? + + FIXME : This solution is waaaaaay to long ! ##--- """ -def fun(): +def triangle_divisors(div_number): """ + Returns the value of the first triangle number to have over div_number + divisors """ - - return 1 + val = 0 + inc = 0 + nb_div = 0 + while( nb_div <= div_number): + inc += 1 + val += inc + nb_div = divisors(val) + + return val + +def divisors(value): + """ + Outputs the number of divisors of value + """ + nb_div = 2 + for val in range(2, value ): + if (value % val ==0): + nb_div += 1 + + return nb_div if __name__ == '__main__': - print "Answer : %d" % (fun()) + print "Answer : %d" % (triangle_divisors(500))