project euler problem 5 https projecteuler netproblem5 smallest multiple 2520 is the smallest number that can be divided by each of the numbers from 1 to 10 without any remainder what is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20 references https en wiktionary orgwikievenlydivisible returns the smallest positive number that is evenly divisible divisible with no remainder by all of the numbers from 1 to n solution10 2520 solution15 360360 solution22 232792560 solution3 4 6 solution0 traceback most recent call last valueerror parameter n must be greater than or equal to one solution17 traceback most recent call last valueerror parameter n must be greater than or equal to one solution traceback most recent call last typeerror parameter n must be int or castable to int solutionasd traceback most recent call last typeerror parameter n must be int or castable to int returns the smallest positive number that is evenly divisible divisible with no remainder by all of the numbers from 1 to n solution 10 2520 solution 15 360360 solution 22 232792560 solution 3 4 6 solution 0 traceback most recent call last valueerror parameter n must be greater than or equal to one solution 17 traceback most recent call last valueerror parameter n must be greater than or equal to one solution traceback most recent call last typeerror parameter n must be int or castable to int solution asd traceback most recent call last typeerror parameter n must be int or castable to int
def solution(n: int = 20) -> int:
    

    try:
        n = int(n)
    except (TypeError, ValueError):
        raise TypeError("Parameter n must be int or castable to int.")
    if n <= 0:
        raise ValueError("Parameter n must be greater than or equal to one.")
    i = 0
    while 1:
        i += n * (n - 1)
        nfound = 0
        for j in range(2, n):
            if i % j != 0:
                nfound = 1
                break
        if nfound == 0:
            if i == 0:
                i = 1
            return i
    return None


if __name__ == "__main__":
    print(f"{solution() = }")