#!/usr/bin/python3

def smallest_multiple(n):
    set1 = set([x for x in range(1, n+1)])
    set2 = set()
    for i in range(len(set1), 0, -1):
        for j in range(1, i):
            if i%j == 0:
                set2.add(j)
    set1 = set1 - set2 
    res_num = n*n   
    while True:
        for i in set1:
            missing_div = False
            if res_num%i: 
                missing_div = True
                shift = res_num%i
                break       
        if not missing_div: return res_num
        res_num += 1 or shift
        shift = 0
        
        


def test_():
    assert(smallest_multiple(10) == 2520)
    print(smallest_multiple(20))
    print('Tests Passed!')
            
if __name__ == '__main__':
    test_()