Menor número con la misma suma de dígitos

Los números 17, 341 y 62 tienen en común que la suma de sus dígitos da el mismo valor, 8. Hay muchos otros números así; de todos ellos, ¿cuál es el más pequeño?

Entrada

Los números 17, 341 y 62 tienen en común que la suma de sus dígitos da el mismo valor, 8. Hay muchos otros números así; de todos ellos, ¿cuál es el más pequeño?

Salida

Para cada caso de prueba, el programa escribirá, en una línea independiente, el menor número positivo cuya suma de dígitos, al escribirlo en decimal, sea igual al valor de la entrada.

Entrada de ejemplo

8
10
0

Salida de ejemplo

8
19

Solución propuesta

def suma_cifras(número):
    return sum([int(c) for c in str(número)])


if __name__ == '__main__':
    soluciones = []
    menor = int(input())
    while menor:
        prueba = 1
        suma = suma_cifras(prueba)
        while menor != suma:
            prueba += 1
            suma = suma_cifras(prueba)
        soluciones.append(prueba)
        menor = int(input())
    for solucion in soluciones:
        print(solucion)

Enlace del código

Enlace en aceptaelreto.com

Publicado el 11 de junio de 2018