Problème avec un modulo

Résolu/Fermé
Thomas - Modifié le 29 sept. 2021 à 10:17
Phil_1857 Messages postés 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 29 sept. 2021 à 10:34
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 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
29 sept. 2021 à 10:25
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 39637 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 25 avril 2024 9 235
29 sept. 2021 à 10:30
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 1883 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 178
Modifié le 29 sept. 2021 à 10:36
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