Python Nombres Premiers [Résolu/Fermé]

Signaler
Messages postés
68
Date d'inscription
mardi 14 février 2017
Statut
Membre
Dernière intervention
18 avril 2017
-
Messages postés
68
Date d'inscription
mardi 14 février 2017
Statut
Membre
Dernière intervention
18 avril 2017
-
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 :

1 réponse

Messages postés
532
Date d'inscription
mercredi 9 mars 2016
Statut
Membre
Dernière intervention
8 mars 2018
86
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à
Messages postés
68
Date d'inscription
mardi 14 février 2017
Statut
Membre
Dernière intervention
18 avril 2017
14
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 !
Messages postés
532
Date d'inscription
mercredi 9 mars 2016
Statut
Membre
Dernière intervention
8 mars 2018
86
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 :")))
Messages postés
68
Date d'inscription
mardi 14 février 2017
Statut
Membre
Dernière intervention
18 avril 2017
14 >
Messages postés
532
Date d'inscription
mercredi 9 mars 2016
Statut
Membre
Dernière intervention
8 mars 2018

Mais comment te dire...

MERCIIIII !!!!!

Enfin ça marche !
Je vous remercie énormément, vous m'avez beaucoup aidé !^^