Checking Perfect Power

Checking Perfect Power

Un entier positif n est un perfect power s'il peut être exprimé sous forme de puissance be pour deux entiers b et e qui sont tous deux supérieurs à un. (Tout entier positif n peut toujours être exprimé comme la puissance triviale n1, nous ne nous en soucions donc pas) Par exemple, les entiers 32, 125 et 441 sont des puissances parfaites puisqu'ils sont respectivement égaux à 25, 53 et 212.

Cette fonction doit déterminer si l'entier positif n est une puissance parfaite. Votre fonction doit en quelque sorte itérer sur un nombre suffisant de combinaisons possibles de b et e qui pourraient fonctionner, en retournant immédiatement True dès que vous trouvez des combinaisons b et e qui satisfont be == n et retourner False lorsque toutes les possibilités pertinentes pour b et e ont été essayées et jugées insuffisantes.

Étant donné que n peut devenir très grand, votre fonction ne doit pas examiner trop de combinaisons au-delà de celles qui sont à la fois nécessaires et suffisantes pour déterminer la réponse de manière fiable. Atteindre cette efficacité est le point éducatif central de ce problème.

Entrée: Entier (int).

Sortie: Valeur logique (bool).

Exemples:

assert perfect_power(8) == True
assert perfect_power(42) == False
assert perfect_power(441) == True
assert perfect_power(469097433) == True
You should be an authorized user in order to see the full description and start solving this mission.