Programme plus grande puissance

Fermé
Nayla - Modifié par Nayla le 1/01/2016 à 20:35
Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 - 1 janv. 2016 à 20:51
Bonjour,

Je suis en 1ere année de DUT informatique.
Je révise Python, cependant, j'aurais aimé s'il est possible, avoir des explications quant au programme à faire suivant : "Un programme qui calcule, étant donné un entier n, la plus grande puissance de n inférieur à 1 millions.

J'ai écrit un programme qui marche, mais je sais que la façon par laquelle je m'y suis prise est fausse :

entier = input("Quel entier en puissance ? ")

resultat = 0
i = 0

while resultat < 1000000:
resultat = i**entier
i=i+1

if resultat >= 1000000:
print i-2, "est la puissance de",entier,"la plus grande"

Lorsque j'enlève i-2, si je mets en entier 4, j'obtiens en plus grande puissance 33 (donc 33⁴) alors que je suis censée obtenir 31. Si quelqu'un pouvait m'aider à comprendre mon erreur, je lui en serais reconnaissante.

Merci d'avance.

1 réponse

Mimiste Messages postés 1149 Date d'inscription samedi 17 mai 2008 Statut Membre Dernière intervention 6 mars 2016 206
1 janv. 2016 à 20:51
Bonjour

Il faudrait mettre le i=i+1 avant le calcul du résultat.

Ensuite le if que tu a mis derrière ne sert à rien car si on est sortit de la boucle c'est forcément car résultat est supérieur à 1000000

Il suffit au final de faire un print de i-1

Un dernier détail, vérifier que l'entier rentré par l'utilisateur est supérieur à 0 sinon ça fera une boucle infinie

--
0