mirror of
https://github.com/jlengrand/project_euler.git
synced 2026-03-10 08:41:20 +00:00
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:
32
e_12.py
32
e_12.py
@@ -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))
|
||||||
|
|||||||
Reference in New Issue
Block a user