Programme plus grande puissance
Nayla
-
Mimiste Messages postés 1159 Statut Membre -
Mimiste Messages postés 1159 Statut Membre -
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.
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.
A voir également:
- Programme plus grande puissance
- Test puissance pc - Guide
- Programme demarrage windows - Guide
- Programme word gratuit - Guide
- Puissance signal wifi - Guide
- Message programmé iphone - Guide
1 réponse
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
--
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
--