def triangle_number_generator(): 
    for n in range(1,1000000):
        yield n*(n+1)//2
        
def count_divisors(n): 
    return sum([2 for i in range(1,int(n**0.5)+1) if n%i==0 and i*i != n])

print(next(i for i in triangle_number_generator() if count_divisors(i) > 500))