Problème avec un modulo

Résolu
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

  1. 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
    1. Modérateur
      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.

      1. 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')