# -*- coding: utf-8 -*-
"""
Created on Sat Sep 28 16:05:19 2013

@author: olgis



The sequence of triangle numbers is generated by adding the natural numbers. So the 7th triangle number would be 1 + 2 + 3 + 4 + 5 + 6 + 7 = 28. The first ten terms would be:

1, 3, 6, 10, 15, 21, 28, 36, 45, 55, ...

Let us list the factors of the first seven triangle numbers:

     1: 1
     3: 1,3
     6: 1,2,3,6
    10: 1,2,5,10
    15: 1,3,5,15
    21: 1,3,7,21
    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?

"""
import time

def numberDivisor(num):
    nod = 0
    nSqrt = int(num**0.5)
    
    for i in range(1, nSqrt + 1):
        if  num % i == 0:
            nod += 2
    if nSqrt * nSqrt == num:
        nod -= 1
    return nod

    
    
start = time.time()
number = 1
k = 1
while numberDivisor(number) < 500:
    k +=1
    number = (k * (k + 1))/2
    
elapsed = time.time() - start

print "The 1st triangle number with over 500 divisors is : %s. found solution in %s sec" %(number, elapsed)
#The 1st triangle number with over 500 divisors is : 76 576 500. found solution in 5.7103998661 sec   