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