74 Mathématiques et TI-Nspire
© T³ France 2010 / Photocopie autorisée
1. Reconnaître si un nombre est premier
C’est évidemment la question la plus simple que l’on se pose quand on vient de donner la définition.
Les premiers nombres premiers sont archi-connus mais comment procède-t-on si l’on a affaire à un
nombre plus grand, comme 1 234 567 891 ou 1 234 567 891 234 567 ? Nous excluons dans ce
chapitre le recours à l’excellente fonction isprime de la calculatrice ; rien ne remplace la réflexion
que l’on peut mener soi-même autour de ces problèmes fondamentaux posés par l’arithmétique.
1.1 La fonction plus petit diviseur d’un entier
Si l’on cherche à reformuler le problème posé, un entier n est premier lorsque le plus petit
diviseur strictement supérieur à 1 de n est… n lui-même. D’où l’intérêt de commencer en écrivant une
fonction donnant le plus petit diviseur p strictement supérieur à 1 d’un entier n, ce que nous écrirons à
l’avenir d’une notation peu répandue mais fort commode : ppd(n).
Comment ferions-nous à la main avec un entier quelconque pour déterminer son ppd ?
On teste successivement si n est divisible par 2, puis par 3, etc. : on s’arrête dès que l’on a un diviseur.
Étudions ce qui se passe sur quelques exemples :
Un même calcul doit donc être effectué un certain nombre de fois : en commençant à d = 2, puis en
incrémentant de 1, on doit tester si n est divisible par d (c’est-à-dire pour la calculatrice si
mod(n,d)=0). Dès que c’est le cas, on renvoie la valeur de d trouvée ; sinon on poursuit et au pire,
dans le cas où n est premier, on s’arrête lorsque d2 dépasse n.
Cette démarche peut être aisément transposée sur un tableur.
L’entier à étudier est placé dans la cellule A1 et mémorisé dans une variable n. On teste tous les
entiers compris entre 2 et n , que l’on peut placer dans la colonne B, avec une instruction seq. On
exclut d’emblée le 1.
Dans la colonne C, on repère ceux qui divisent n s’ils existent ; sinon on met void dans la cellule.
Plutôt que recopier arbitrairement sur un certain nombre de lignes, il vaut mieux utiliser un seq,
comme on l’a déjà vu dans un exemple précédent :
=seq(when(mod('n,k)=0,k,_,_),k,2,√('n))
Dans la colonne D, on supprime les nombreux void de la colonne C.