Problème avec un modulo

Résolu
Thomas -  
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'ai fait un code simple pour déterminé si un nombre est pair ou non mais j'ai un problème avec mon modulo alors que je ne vois pas en quoi ça bloque. Si vous pouvez me dire l'erreur que je n'ai pas vu je veux bien. Merci beaucoup

Voici mon code :
a = int(input("saisir un nombre a :"))
l = []
for i in range(a):
if a%i == 0:
l.append(i)
if len(l) > 2:
print(a, "n'est pas un nombre premier")
elif len(l) == 2:
print(a, "est un nombre premier")


Message modifié par la modération
Pour une lecture plus facile du code, à l'avenir utilisez les balises, VOIR CETTE PAGE

3 réponses

Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Bonjour,

Il y a un problème d'indentation dans ce code, du moins tel qu'il st affiché ici

Sinon, le 1er i de la boucle for est égal à 0

donc a%i est comme une division par zéro
0
jee pee Messages postés 41521 Date d'inscription   Statut Modérateur Dernière intervention   9 720
 
Bonjour,

Un nombre pair ou un nombre premier ??

Car pour un nombre pair pas besoin de boucle, tester a % 2 == 0 suffit

Et tu devrais remettre ton code avec les balises comme indiqué plus haut car il n'y a pas les indentations, primordiales en Python.


0
Phil_1857 Messages postés 1872 Date d'inscription   Statut Membre Dernière intervention   168
 
Si c'est pour tester si c'est un nombre premier, moi je ferais ça:
def compose(n):

    for k in range(2,n):
        if(not n%k): return(True)

 return(False)

a = int(input("saisir un nombre a :"))
if(compose(a)):
    print('composé')
else:
    print('premier')
0