És una potència? P51271


Statement
 

pdf   zip

thehtml

Feu un programa que digui si un natural n és una potència no trivial, és a dir, si es pot expressar com xm, on tant x com m són naturals i m ≥ 2. Per exemple, tant 243 = 35, com 400 = 24 52 = (22 51)2, com 216000 = 26 33 53 = (22 31 51)3, com 1866240000 = 212 36 54 = (26 33 52)2 són potències no trivials, mentre que 3, 200 = 23 52, i 432000 = 27 33 53 no ho són.

Entrada

L’entrada consisteix en diversos casos, cadascun amb un natural n entre 2 i 106.

Sortida

Escriviu cada n seguida de “yes” o “no”, segons sigui o no una potència no trivial.

Observació

No podeu usar la funció matemàtica pow() ni cap de semblant per resoldre aquest problema.

Pista

Una possible solució usa una variant del garbell d’Eratòstenes, on es precalcula un factor primer de cada nombre abans de començar a llegir l’entrada.

Public test cases
  • Input

    243
    400
    216000
    3
    200
    432000
    1000000
    999999
    

    Output

    243 yes
    400 yes
    216000 yes
    3 no
    200 no
    432000 no
    1000000 yes
    999999 no
    
  • Information
    Author
    Jordi Cortadella
    Language
    Catalan
    Other languages
    English
    Official solutions
    C++
    User solutions
    C++