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 https en wikipedia orgwikieuclideanalgorithm https en wikipedia orgwikileastcommonmultiple least common multiple using the property that lcma b greatestcommondivisora b ab lcm3 15 15 lcm1 27 27 lcm13 27 351 lcm64 48 192 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 project euler problem 5 https projecteuler net problem 5 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 org wiki evenly_divisible https en wikipedia org wiki euclidean_algorithm https en wikipedia org wiki least_common_multiple least common multiple using the property that lcm a b greatest_common_divisor a b a b lcm 3 15 15 lcm 1 27 27 lcm 13 27 351 lcm 64 48 192 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
from maths.greatest_common_divisor import greatest_common_divisor




def lcm(x: int, y: int) -> int:
    

    return (x * y) // greatest_common_divisor(x, y)


def solution(n: int = 20) -> int:
    

    g = 1
    for i in range(1, n + 1):
        g = lcm(g, i)
    return g


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