#! /Users/macl2/anaconda/bin/python -tt
'''
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 math

def main():
  
  i=1
  num = 0
  
  while(1):  # loop over integers
  	
  	num += i
  	rangenum = int(math.sqrt(num)+1)
  	k = 0
  	for j in range(1,rangenum,1): # by looping over numbers up to the square root, we only need to look for 250 divisors
  	  if num%j==0:  # check to see if a number is a divisor or not
  	  	k+=1      # if so, increment the counter
  	  	if k%25==0:
  	  	  print 'k =', str(k), 'num =', str(num)
  	  	if k >250: # a k of 250 is equivalent to 500 divisors
  	  	  print '1st triangular number with over 500 divisors =', num
  	  	  return
  	  	
  	i +=1
  	
  return
  
  
if __name__ == '__main__':
  main()