65 votes

Vérification si un nombre est un nombre premier en Python

J’ai écrit le code suivant, qui devrait vérifier si le nombre saisi est un nombre premier ou non, mais il y a un problème que je n’ai pas pu traverser:

Si le nombre saisi n’est pas un nombre premier, il affiche « pas premier », comme il est censé le faire, mais si le nombre est un nombre premier, il n’affiche rien. Pourriez-vous s’il vous plaît m’aider avec cela?

41voto

Mark Points 884

C’est le moyen le plus efficace de voir si un nombre est premier, si vous n’avez que quelques requêtes. Si vous demandez beaucoup de nombres s’ils sont premiers, essayez Tamis d’Ératosthène.

17voto

Jochen Ritzel Points 42916

Si est un nombre premier, alors le dans votre code s’exécutera pour toujours, puisqu’il restera .

Alors, pourquoi `` est-ce là?

Je pense que vous vouliez mettre fin à la boucle for lorsque vous avez trouvé un facteur, mais vous ne saviez pas comment, alors vous avez ajouté cela car il a une condition. Voici donc comment procéder:

0voto

Fadyboy Points 77
def prime(x):
    # check that number is greater that 1
    if x > 1:
        for i in range(2, x + 1):
            # check that only x and 1 can evenly divide x
            if x % i == 0 and i != x and i != 1:
                return False
        else:
            return True
    else:
        return False # if number is negative

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X