#!/usr/bin/env python3 # 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? from projecteuler import count_divisors, timing @timing def p012() -> None: i = 0 triang = 0 finished = 0 # Generate all triangle numbers until the first one with more than 500 divisors is found. while not finished: i = i + 1 triang = triang + i # Use the function implemented in projecteuler.py to count divisors of a number. if count_divisors(triang) > 500: finished = 1 print('Project Euler, Problem 12') print(f'Answer: {triang}') if __name__ == '__main__': p012()