Solves problem 12, 15, 21, 48

Searches solution for problem 18

Problem 12 takes like 6 hours to process. Should be enhanced !
This commit is contained in:
Julien Lengrand-Lambert
2012-01-16 17:01:51 +01:00
parent 317cf09e71
commit 66a8d4abaa

32
e_12.py
View File

@@ -1,7 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
""" """
##--- ##---
# airballman # Julien Lengrand
#Created on : Sun Jan 15 22:35:08 CET 2012 #Created on : Sun Jan 15 22:35:08 CET 2012
# #
# DESCRIPTION : Solves problem 12 of Project Euler # DESCRIPTION : Solves problem 12 of Project Euler
@@ -17,13 +17,35 @@
28: 1,2,4,7,14,28 28: 1,2,4,7,14,28
We can see that 28 is the first triangle number to have over five divisors. 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? 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
""" """
val = 0
return 1 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__': if __name__ == '__main__':
print "Answer : %d" % (fun()) print "Answer : %d" % (triangle_divisors(500))