Voici un exemple de code Python qui permet de tester si un nombre est premier :
def est_premier(nombre):
"""Vérifie si un nombre est premier."""
if nombre <= 1:
return False # Les nombres <= 1 ne sont pas premiers
for i in range(2, int(nombre**0.5) + 1):
if nombre % i == 0:
return False # Divisible par un autre nombre
return True # Aucun diviseur trouvé
# Exemple d'utilisation
nombre = int(input("Entrez un nombre : "))
if est_premier(nombre):
print(f"{nombre} est un nombre premier.")
else:
print(f"{nombre} n'est pas un nombre premier.")
Le principe général consiste à tester tous les diviseurs compris entre 2 et N. Si aucun diviseur n'est trouvé, cela implique que le nombre est nécessairement premier.
Afin d'optimiser le code, le test des diviseurs s'arrête ici à N plutôt que N, car si un diviseur d1≥N existe, alors il existe aussi un autre diviseur d2≤N. Si aucun diviseur n'est trouvé entre 2 et N, cela implique que N est nécessairement premier.
nombre - 1
. Il suffit de vérifier jusqu'à la racine carrée de nombre
, car si un diviseur existe, il apparaîtra avant ou à la racine carrée.nombre**0.5
for
: On vérifie si le nombre est divisible par un entier compris entre 2 et int(nombre**0.5) + 1
. Si c'est le cas, le nombre n'est pas premier => return False
return True
Vous pouvez tester le code ci-dessous :