Problème avec un modulo

Résolu
Thomas -  
Phil_1857 Messages postés 1883 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

  1. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    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
  2. jee pee Messages postés 31869 Date d'inscription   Statut Modérateur Dernière intervention   9 975
     
    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
  3. Phil_1857 Messages postés 1883 Date d'inscription   Statut Membre Dernière intervention   169
     
    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