Flux amb nombres d'Armstrong X75473


Statement
 

pdf   zip

thehtml

Un nombre d’n dígits és un nombre Armstrong si la suma de les potències n-èsimes dels seus dígits és igual al propi nombre.

Per exemple, 153 és un nombre Armstrong ja que 13+53+33=153 i també 8208 és un nombre d’Armstrong ja que 84+24+04+84=8208.

Escriu un programa que donat un flux de naturals acabat en 0 escrigui en el mateix ordre en que apareixen en el flux els nombres d’Armstrong.

Entrada

L’entrada consisteix en un flux de naturals acabat en 0.

Sortida

Escriu els nombres d’Armstrong que apareixen en el flux en el mateix ordre en que apareixen en el flux. En cas que no hi hagi cap nombre d’Armstrong s’ha d’escriure NO.

Observació

Per resoldre aquest exercici NO es poden usar taules, vectors ni cadenes de caràcters (les cadenes de caràcters NOMÉS es poden usar per escriure pel canal de sortida la paraula NO).

Per resoldre aquest exercici podeu usar la funció pow de la biblioteca cmath. Recordeu que pow(a, b) = ab.

Public test cases
  • Input

    11 370 13 371 17 1634 19 23 29 54748 31 37 41 0
    

    Output

    370 371 1634 54748
    
  • Input

    1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474 54748 92727 0
    

    Output

    1 2 3 4 5 6 7 8 9 153 370 371 407 1634 8208 9474 54748 92727
    
  • Input

    11 101 1001 10001 100001 1000001 10000001 0
    

    Output

    NO
    
  • Information
    Author
    Bernardino Casas
    Language
    Catalan
    Official solutions
    C++
    User solutions
    C++