Xevia AccueilBlogActualitésA propos

Déterminer la primauté d'un nombre sur une calculatrice

Code que j'aurais du publier il y a des mois, il détermine si un nombre est premier ou non. Il fonctionne uniquement sur les calculatrices Texas Instrument. Il se divise en deux programme : le programme CRIBLE et le programme ISPRIME. C'est le programme CRIBLE que je vais ici publier en premier. Il repose sur le crible d'Eratosthène.

Si aucun entier premier compris entre 2 inclus et racine de n ne divise n, alors n est premier. Donc si au moins un des quotients n/i est entier, i décrivant l'ensemble des entiers quelconques compris entre 2 inclus et racine de n, alors n n'est pas premier. C'est sur cette proposition qu'est fondé l'algorithme. Il vérifie que tous les n/i concernés n'appartiennent pas à l'ensemble des entiers, auquel cas n est bien premier.
TI-Basic (CRIBLE)
2→I
1→P
While I≤√(N)
If partEnt(N/I)=N/I
Then
0→P
Return
End
I+1→I
End
Return

CRIBLE joue le rôle de sous-programme ; le nombre dont on doit déterminé la primauté doit être assigné à N puis une fois le programme exécuté, P indique si le nombre était effectivement premier ou pas (0 : le nombre ne l'est pas, 1 : il l'est). ISPRIME ne sert que d'interface utilisateur.

TI-Basic (ISPRIME)
Prompt N
prgmCRIBLE
If P=1
Disp "PREMIER"
If P≠1
Disp "NON PREMIER"

Ce code est simple mais néanmoins très lent pour les grands nombres. Il est possible de l'optimiser avec des algorithmes plus complexes. J'ai fait une version utilisant des tables précalculées pour accélérer les calculs que je publierai dans un prochain post.