daily log 12.19.20

less than 1 minute read

12

The range(1, int(math.sqrt(num))) refactor made this take seconds instead of minutes

import math
def get_divisors(num):
    divisors = []
    for i in range(1, int(math.sqrt(num))):
        if num%i==0:
            divisors.append(i)
            divisors.append(int(num/i))
    return set(divisors)

def generate_nth_triangle_number(num):
    triangle_number = 0
    for i in range(num+1):
        triangle_number += i        
    return triangle_number


factors = 0
greatest_factor = 0
i = 1
while greatest_factor < 500:
    triangle_number = generate_nth_triangle_number(i)
    factors = len(get_divisors(triangle_number))
    if factors > greatest_factor:
        greatest_factor = factors
    print(i, triangle_number, factors, greatest_factor)
    i+=1