La méthode sympy.is_prime() en Python

arithmétique avec la fonction sympy is_prim python

1. À propos de sympy.is_prime()

sympy.is_prime() est une fonction du module sympy (bibliothèque de calcul symbolique en Python) qui permet de tester si un nombre entier est premier ou non.
Contrairement à une simple boucle de division, cette fonction utilise des algorithmes optimisés et déterministes pour les nombres de taille raisonnable, et probabilistes pour les très grands nombres.

Elle retourne True si le nombre est premier, False sinon. Elle gère également les nombres négatifs (retourne False) et les cas particuliers (0, 1).

sympy.is_prime() est l'outil idéal pour tester la primalité en Python :

  • Rapide et optimisé (algorithmes éprouvés).
  • Facile à utiliser (une seule ligne).
  • Polyvalent (petits et grands nombres).
  • Intégré à l'écosystème sympy.

2. Installation et import de sympy

Avant d'utiliser is_prime(), vous devez installer la bibliothèque sympy via pip puis l'importer dans votre script.

2.1. Installation

2.2. Importation

L'import direct de is_prime permet d'utiliser la fonction sans préfixe.

3. Syntaxe et paramètres

La syntaxe de sympy.is_prime() est très simple :

n est un entier (type int ou Integer de sympy). Aucun autre paramètre n'est nécessaire.

4. Exemples de base

Testons quelques nombres premiers et composés pour illustrer le fonctionnement.

4.1. Nombres premiers classiques

Sortie :

4.2. Nombres composés

Sortie :

5. Cas particuliers : 0, 1 et nombres négatifs

La fonction is_prime() gère correctement les cas limites :

Sortie :

6. Test sur de grands nombres

is_prime() est efficace même pour des nombres de plusieurs centaines de chiffres. Elle utilise l'algorithme Miller-Rabin déterministe pour les nombres < 2^64 et des tests probabilistes pour les plus grands.

Sortie (peut varier selon la machine) :

7. Comparaison avec une boucle naïve

Pour illustrer l'intérêt de is_prime(), comparons son temps d'exécution avec une fonction de primalité naïve (division jusqu'à √n).

Sortie (exemple) :

On constate que is_prime() est bien plus rapide pour les grands nombres.

8. Utilisation avec des nombres de type sympy.Integer

is_prime() accepte aussi les objets Integer de sympy, ce qui est pratique pour le calcul symbolique.

Sortie :

9. Limites et précautions

Bien que is_prime() soit très fiable, pour des nombres extrêmement grands (plus de 10^30), elle utilise un test probabiliste Miller-Rabin avec un certain nombre de bases. La probabilité d'erreur est négligeable, mais elle n'est pas nulle. Pour un usage cryptographique, privilégiez des tests déterministes ou certifiés.

De plus, la fonction peut lever une exception ValueError si l'argument n'est pas un entier.

Sortie :

 


 


Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/


Leave a Reply

Your email address will not be published. Required fields are marked *