Script nombre premier et problème de division
Bonjour à toutes et tous,
Je débute en Python et je me suis lancé dans un script (cf. ci-dessous) qui teste si un nombre est premier.
Cela fonctionne parfaitement en utilisant des nombres plus petits que 10^12 (p.ex. 1000000008673).
Malheureusement, en utilisant des nombres plus grands et impairs, l'interpréteur (repl.it ou IDLE sur Mac) me dit que le nombre se divise par 2 :( (p.ex. 100000000867300001)
Il semblerait que cela provienne d'un "problème" de division...
Quelqu'un peut-il m'aider.
Merci d'avance.
Yvan
Voici mon script :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| from math import *
while True: # s'exécute tant le nombre saisi n'est pas un entier supérieur à 1
try:
nombre = int(input("Entrer un entier positif supérieur à 1 : "))
if nombre > 1:
break
except ValueError:
continue
if nombre == 2:
print("_____________________________________________________")
print(nombre, "est un nombre premier !")
else:
if nombre/2 == nombre//2:
print("_____________________________________________________")
print(nombre, "n'est pas premier car il se divise par 2")
else:
compteur = 0
limite = int(sqrt(nombre)) # tester les diviseurs jusqu'à la racine carré du nombre saisi
for x in range (3, limite + 1):
if nombre/x == nombre//x:
compteur = compteur + 1
break
if compteur > 0:
print("_____________________________________________________")
print(nombre, "n'est pas premier car il se divise par", x)
print(nombre, ":", x, "=", nombre//x)
#print(x)
else:
print("_____________________________________________________")
print(nombre, "est un nombre premier !") |