Public Function ListeSommePuissanceN$(ByVal Somme&, ByVal N&, Optional exposant)
Dim max&, X&, i&, s$
If Somme <= 0 Or N <= 1 Then Exit Function
max = 1 + Int(Log(Somme) / Log(N)): If N ^ max > Somme Then max = max - 1
For i = max To 0 Step -1
X = N ^ i
If X <= Somme Then
If IsMissing(exposant) Then s = X & " " & s Else s = N & "^" & i & " " & s
Somme = Somme - X
End If
Next i
If Somme = 0 Then ListeSommePuissanceN = Trim(s) Else ListeSommePuissanceN = "?"
End Function
Function JenSuis(ByVal Nombre&, ByVal N&, ByVal Somme&) As Boolean
JenSuis = InStr(ListeSommePuissanceN(Somme, N), " " & Nombre & " ") > 0
End Function