Python Nombres Premiers [Résolu]

MaitS31 68 Messages postés mardi 14 février 2017Date d'inscription 18 avril 2017 Dernière intervention - 7 mars 2017 à 19:20 - Dernière réponse : MaitS31 68 Messages postés mardi 14 février 2017Date d'inscription 18 avril 2017 Dernière intervention
- 9 mars 2017 à 17:56
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 :
Afficher la suite 
68Messages postés mardi 14 février 2017Date d'inscription 18 avril 2017 Dernière intervention

4 réponses

Répondre au sujet
Rocailleux 540 Messages postés mercredi 9 mars 2016Date d'inscription 26 juillet 2017 Dernière intervention - 7 mars 2017 à 22:04
0
Utile
3
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 68 Messages 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 !
Rocailleux 540 Messages 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 :")))
MaitS31 68 Messages postés mardi 14 février 2017Date d'inscription 18 avril 2017 Dernière intervention > Rocailleux 540 Messages postés mercredi 9 mars 2016Date d'inscription 26 juillet 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é !^^
Commenter la réponse de Rocailleux