És una potència? P51271


Statement
 

pdf   zip

Feu un programa que digui si un natural nn és una potència no trivial, és a dir, si es pot expressar com xmx^m, on tant xx com mm són naturals i m2m \ge 2. Per exemple, tant 243=35243 = 3^5, com 400=2452=(2251)2400 = 2^4 5^2 = (2^2 5^1)^2, com 216000=263353=(223151)3216000 = 2^6 3^3 5^3 = (2^2 3^1 5^1)^3, com 1866240000=2123654=(263352)21866240000 = 2^{12} 3^6 5^4 = (2^6 3^3 5^2)^2 són potències no trivials, mentre que 3, 200=2352200 = 2^3 5^2, i 432000=273353432000 = 2^7 3^3 5^3 no ho són.

Entrada

L’entrada consisteix en diversos casos, cadascun amb un natural nn entre 2 i 10610^6.

Sortida

Escriviu cada nn 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++