I.1 Définition
un nombre n∈IN, n > 1, dont les seuls diviseurs sont 1 et nest dit premier.
Sinon il est dit composé.
Par convention, on considère que 0 et 1 ne sont ni composés ni premiers. On note P
l’ensemble des nombres premiers.
Définition 1.
Exemples : 2,3,5,7∈P, 10 <P.
467 ∈P(c’est le 91e), 22091 ∈P. Le plus grand nombre premier connu date de mai 2004.
La définition d’un nombre premier est simple. On peut s’attendre à être capable de recon-
naître facilement si un nombre est premier ou non. Il n’en est rien si le nombre est très
grand (quelques centaines de chiffres). La méthode la plus simple consiste à essayer tous les
diviseurs entre 1 et n. Mais elle devient très rapidement fastidieuse et longue. Néanmoins
on peut améliorer cet algorithme (pour d’autres procédés de test voir par exemple le cours
d’algèbre de Michel Demazure aux éditions Cassini).
Au lieu de tester 2,3,4,...,n, on peut se contenter de 2 et des nombres impairs car si q|n
avec qpair alors 2 |n(puisque 2 |qet q|n⇒2|n). Comme 2 aura été testé il est inutile
d’essayer les autres diviseurs. On peut en fait garder les nombres premiers inférieurs à n.
Mais il faut les connaître. Par exemple, pour n= 100, on examine les divisions de npar
2,3,5,7,9,11,13,...,97,99.
Un autre perfectionnement possible est d’utiliser la remarque suivante : si n=ab avec a≤b
alors a≤√n. En effet, de a≤b, on forme a2≤ab (car b > 0). Donc a2≤nsoit alors a≤√n.
Il suffit ainsi d’essayer 2,3,5,7,9,...,N comme diviseurs pour n, où Nest l’entier le plus
proche de √n.
Par exemple, pour n= 15, on teste uniquement 2 et 3 (car 42>15). Pour n= 100, on cherche
un diviseur parmi 2,3,5,7,9. Ceci se programme aisément sur les calculatrices à l’aide des
instructions de boucle :
Pour les CASIO :
”N”→N
FOR 7 →Dto √Nstep 2
If Frac(N/D)=0 : THEN D STOP
IFEND
NEXT
Pour les TI
:Prompt N
:For(D,7,√N,2)
:If fPart(N/D)=0
:Then
:Disp D
:Stop
:End :End
Quelques principes : une calculatrice peut effectuer des calculs, des boucles (c’est à dire
des actions répétitives), afficher ou demander des nombres. Un programme est une suite de
telles instructions. Ces dernières s’écrivent dans un programme à l’aide des menus obtenus
en appuyant sur MATH ou Test ou PRGM pour les TI, et, OPTN ou PRGM pour les
Casio.
Exercice 1 : A partir de ce qui précéde, écrire un algorithme testant si un entier nest premier
ou non. Puis traduire cet algorithme en un programme Premier dans le langage Python.
2