@@ -0,0 +1,552 @@
+from collections import Counter, defaultdict%0Afrom functools import reduce%0Afrom operator import mul%0A%0Adef prime_factors(num):%0A    i = 2%0A    while i * i %3C= num:%0A        if num %25 i:%0A            i += 1%0A        else:%0A            num //= i%0A            yield i%0A    if num %3E 1:%0A        yield num%0A%0Aif __name__ == '__main__':%0A    d = defaultdict(int)%0A    counters = (Counter(prime_factors(i)) for i in range(1, 21))%0A    for c in counters:%0A        d.update(%7Bk: max(v, d%5Bk%5D) for k, v in c.items()%7D)%0A    ans = reduce(mul, (k**v for k,v in d.items()))%0A    print(ans)%0A

complete 5 smallest multiple