def NombreBottomUp(V):
    S = [1,7,9]
    L = [0]*(V+1)
    valeurs = [0]*(V+1)
    for x in range(1,V+1):
        minimum = V + 1
        for i in range(len(S)):
            if (S[i] <= x) and (1+L[x-S[i]] < minimum):
                minimum = 1 + L[ x - S[i] ]
                v = i
        L[x] = minimum
        valeurs[x] = v  
    x, R = V, [ ]
    while x > 0:
        R.append(S[ valeurs[x] ])
        x -= S[ valeurs[x] ]
        
    return L[V], R

print(NombreBottomUp(14))