Python Nombres Premiers

Résolu/Fermé
MaitS31 Messages postés 68 Date d'inscription mardi 14 février 2017 Statut Membre Dernière intervention 18 avril 2017 - 7 mars 2017 à 19:20
MaitS31 Messages postés 68 Date d'inscription mardi 14 février 2017 Statut Membre Dernière intervention 18 avril 2017 - 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 :
A voir également:

1 réponse

Utilisateur anonyme
7 mars 2017 à 22:04
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à
0
MaitS31 Messages postés 68 Date d'inscription mardi 14 février 2017 Statut Membre Dernière intervention 18 avril 2017 15
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 !
0
Utilisateur anonyme
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 :")))
0
MaitS31 Messages postés 68 Date d'inscription mardi 14 février 2017 Statut Membre Dernière intervention 18 avril 2017 15 > Utilisateur anonyme
9 mars 2017 à 17:56
Mais comment te dire...

MERCIIIII !!!!!

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