Given a non-negative number, return the next bigger polydivisible number, or an empty value like `null` or `Nothing`.
A number is polydivisible if its first digit is cleanly divisible by `1`, its first two digits by `2`, its first three by `3`, and so on. There are finitely many polydivisible numbers.
def polydivisible(n):
    len_n = len(str(n))
    for i in range(1, len_n+1):
        if n // (10 ** (len_n - i)) % i != 0:
            return i 
    else:
        return True
            
def next_num(n): 
    n += 1
    while n <= 3608528850368400786036725: 
        pr = polydivisible(n)
        if pr == True:
            return n
        else:
            len_n = len(str(n))
            num = 10 ** (len_n - pr)
            n = (n // num + 1) * num


def polydivisible(n):
    len_n = len(str(n))
    for i in range(1, len_n+1):
        if n // (10 ** (len_n - i)) % i != 0:
            return i 
    else:
        return True
            
def next_num(n): 
    n += 1
    while n <= 3608528850368400786036725: 
        pr = polydivisible(n)
        if pr == True:
            return n
        else:
            len_n = len(str(n))
            num = 10 ** (len_n - pr)
            n = (n // num + 1) * num

