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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 !")