Signaler

Python Nombres Premiers [Résolu]

Posez votre question MaitS31 68Messages postés mardi 14 février 2017Date d'inscription 18 avril 2017 Dernière intervention - Dernière réponse le 9 mars 2017 à 17:56 par MaitS31
Salut à tous,

Alors je suis en Terminale S (spé Maths), et je m'amuse à faire un algorithme sur Python qui est en lien avec ce que je fais en spé : les nombres premiers ! Donc j'ai fais (j'ai plutôt recopier) un algorithme qui me permet de dire si le nombre que j'entre est Premier ou pas.
Or j'ai un gros problème... Lorsque je rentre une valeur normale, tout se passe bien. Cependant lorsque je veux rentrer un nombre avec un exposant, du type : 2**2, ça ne marche pas . J'ai un message d'erreur qui est celui ci (image jointe). Je regarde donc mon algorithme, mais je ne vois pas ce que je peux faire pour remédier à cela...
Je vous met aussi en image à quoi ressemble mon algorithme !

Je vous remercie d'avance pour votre aide !

Cordialement.

Message d'erreur :


Mon algorithme :
Utile
+0
plus moins
prim.py:


a = input("Nombre :")
a = eval(a)
print(a)



python prim.py 
Nombre :5
5

python prim.py
Nombre :4**2
16


Ce est qui est embêtant ici c'est que l'utilisateur peut faire exécuter n'importe quoi par le script, pour faire les choses bien il faudrait vérifier que chaque caractère entré par l'utilisateur est bien un chiffre. Sinon l'idée est là
MaitS31 68Messages postés mardi 14 février 2017Date d'inscription 18 avril 2017 Dernière intervention - 8 mars 2017 à 07:02
Merci pour votre réponse, mais je ne suis pas sûr de bien saisir ce que vous avez fait.
Fin si, un peu... Entre ma ligne 3 et 4 j'insère "a=eval(a)". je pense que ce soit ça dont vous voulez parler ; mais quand je le teste, ça ne marche pas, j'ai exactement le même message qui apparaît...

Mais je vous remercie beaucoup quand même pour votre réponse rapide !
Répondre
Rocailleux 540Messages postés mercredi 9 mars 2016Date d'inscription 26 juillet 2017 Dernière intervention - 8 mars 2017 à 19:47
Si tu fais ça ligne 4, ton int() aura déja converti la chaine en entier, je suppose que c'est pour cette raison que tu te manges une erreur. Change ta ligne 3 en :

a = int(eval(input("Nombre :")))
Répondre
MaitS31 68Messages postés mardi 14 février 2017Date d'inscription 18 avril 2017 Dernière intervention - 9 mars 2017 à 17:56
Mais comment te dire...

MERCIIIII !!!!!

Enfin ça marche !
Je vous remercie énormément, vous m'avez beaucoup aidé !^^
Répondre
Donnez votre avis

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !