Nombres premiers
Dany-Jack Mercier
IUFM de Guadeloupe, Morne Ferret,
BP399, Pointe-à-Pitre cedex 97159, France
dany-jack.mercier@univ-ag.fr
14 mai 2002
Prérequis pour les Sections 1 à4 :
- Dé …nitions et propriétés des ensembles Net Z, raisonnement par récurrence,
- Divisibilitédans un anneau intègre, et en particulier dans Z,
- Nombres premiers entre eux, Théorème de Gauss.
1 Dé … nition et premières propriétés
Dé … nition 1 Un entier relatif ndistinct de §1est premier si ses diviseurs sont les seuls
diviseurs triviaux §1et §n.
L’entier nest premier si et seulement si son opposé¡nl’est. L’é tude des nombres premiers
de Zse ramène àcelle des entiers naturels premiers. Notons que nest premier si et
seulement si n=ab entraîne a=§1ou b=§1.
Lemme 1 Tout nombre di¤ é rent de §1admet un diviseur premier.
Preuve : Si n2Nnf1g, l’ensemble des diviseurs de nstrictement supérieurs à1n’est
pas vide, donc possède un plus petit élément d. Montrons que dest premier. Si aest
un diviseur de dstrictement supérieur à1, alors a·d. Par transitivitéde la relation
”divise”, l’entier adivisera net donc d·a. En conclusion a=det les seuls diviseurs
positifs de dsont 1et d.
Lemme 2 Tout nombre premier est premier avec tout nombre qu’il ne divise pas.
Preuve : Si pest premier, l’ensemble de ses diviseurs sera f§1;§pget les diviseurs
communs àpet àn, oùnest un entier quelconque non divisible par p, appartiendront
àf§1g.
Lemme 3 Si pest premier, alors (pjab )pjaou pjb):
0[cari0007] v 1.00 http://perso.wanadoo.fr/megamaths
c
°2002, D.-J. Mercier. Vous pouvez faire une copie de ces notes pour votre usage personnel.
1
Preuve : Si pne divise pas a,pest premier avec a, donc pjbd’après le Théorème de
Gauss.
Remarque : Les propriétés des deux derniers Lemmes sont, en fait, des conditions
nécessaires et su¢santes pour qu’un nombre pdistinct de §1soit premier. En e¤et :
1) Si pest premier avec tout nombre qu’il ne divise pas, soit p=ab. Si pne divise pas
a,pest premier avec aet le Théorème de Gauss entraîne pjbd’oùb=pu et 1 = au d’où
a=§1. Si pdivise a,a=pu entraîne encore 1 = ub d’oùb=§1. Cela prouve que pest
premier.
2) Supposons la propriété “pjab )pjaou pjb”vraie pour tous a; b. Si p=ab, alors
pjaou pjb. Si pdivise a, alors a=pu, d’où1 = ub et b=§1. De la même manière pjb
entraîne a=§1.
2 Théorème fondamental de l’arithmétique
L’existence d’une division euclidienne dans Zpermet de prouver que Zest un anneau
principal. Un Théorème classique montre que tout anneau principal est factoriel ([2],
[3]) et par conséquent Zsera un anneau factoriel. Notons au passage que les mêmes
raisonnements s’appliquent àl’anneau des polynômes àune indéterminéeK[X]lorsque
Kdésigne un corps commutatif.
Nous donnons ci-dessous une preuve directe de la factorialitéde Z.
Théorème 1 Théorème fondamental.
L’anneau Zest factoriel, autrement dit pour tout n2Znf0;§1g,
1) Il existe "2 f§1g, des nombres premiers naturels p1; :::; pkdistincts deux àdeux et des
entiers naturels non nuls ®1; :::; ®ktels que n="p®1
1:::p®k
k.
2) Il y a unicitéde cette décomposition àl’ordre des facteurs près. Cela signi…e que
n="p®1
1:::p®k
k="0q¯1
1:::q¯m
m
entraîne "="0,k=met l’existence d’une permutation ¾de Nk=f1; :::; kgtelle que
qi=p¾(i)et ¯i=®¾(i)pour tout i.
Preuve : On peut supposer n2N¤et "= 1. L’existence et l’unicitése montrent chacune
par récurrence sur n.
²Existence : Si n= 2,(p1;®1) = (2;1). Si n > 2,npossède au moins un diviseur
premier pd’après le Lemme 1, et l’on peut écrire n=pm avec m < n. Si m= 1, c’est
…ni. Sinon on applique l’hypothèse récurrente àmpour obtenir une décomposition de n.
²Unicité: Elle est acquise si n= 2 puisque 2 = q¯1
1:::q¯m
mmontre que qidivise 2pour
tout i, autrement dit m= 1,q1= 2 et ¯1= 1. Supposons que l’unicitésoit démontrée
jusqu’au rang n, et considérons les écritures n+ 1 = p®1
1:::p®k
k=q¯1
1:::q¯m
mavec ®1,:::,®k,
¯1,:::,¯m2N¤
, et oùles p1,:::,pk,q1,:::,qm2Nsont premiers. pkdivise q¯1
1:::q¯m
mdonc
divisera l’un des qid’après le Lemme 3, par exemple pkjqm. Comme pkest premier, cela
entraîne pk=qmet
n+ 1
pk
=p®1
1:::p®k¡1
k=q¯1
1:::q¯m¡1
m:
2
On applique l’hypothèse récurrente àcette décomposition en distinguant deux cas pour
que les exposant soient tous strictement positifs : si ®k= 1 alors ¯m= 1 autrement qm
diviserait l’un des piavec i6=k, absurde. Si ®k>1, alors ¯m>1autrement pkdiviserait
l’un des qiavec i6=m, absurde.
3 In…nitude des nombres premiers
Théorème 2 L’ensemble des nombres premiers est in…ni (et donc dénombrable).
Preuve : Supposons par l’absurde que l’ensemble Pdes nombres premiers positifs soit …ni,
et notons-le P=fp1; :::; pmg. L’entier naturel n=p1:::pm+ 1 est strictement supérieur à
1, donc admet un diviseur premier dans P. C’est impossible car la division euclidienne de
npar l’un quelconque des piest toujours de reste 1.
4 Algorithmes de recherche des nombres premiers
Lemme 4 Un nombre n2Nnf0;1gest premier si et seulement si il n’admet pas de
diviseur premier ptel que p2·n.
Preuve : Si nadmet un diviseur premier ptel que p2·n, ce diviseur est un diviseur
non trivial de n, et par conséquent nn’est pas premier. Réciproquement si nn’est pas
premier, il s’é crit n=ab avec 1< a ·b. Tout diviseur premier pde a(il en existe d’après
le Lemme 1), véri…era p2·a2·ab =n:
Remarque : On peut remplacer ”diviseur premier”par ”diviseur di¤ é rent de §1”dans
l’é noncédu Lemme.
4.1 Premier algorithme
Pour savoir si n2Nnf0;1gest premier, on le divise successivement par tous les entiers d
supérieurs à2et tels que d2·n. Si l’une des divisions tombe juste, nn’est pas premier.
Sinon, nest premier.
En fait, si 2ne divise pas n, il est inutile d’envisager les cas oùdest pair, et ainsi de suite,
de sorte que l’on puisse améliorer l’algorithme en testant seulement les divisibilités par 2
et par des nombres dimpairs.
program premier1; {reconnaît si un nombre est premier ou pas}
var
n: longint;
r,d: integer;
begin
write(’Nombre àtester : ’); read(n);
r:=1;
d:=1;
while (d*d<=n) and (r<>0) do
begin
d:=d+1; r:= n mod d;
3
end;
if r=0 then writeln(n, ’n’est pas premier et il est divisible par’,d) else writeln(n, ’est
premier’);
end.
4.2 Deuxième algorithme
On décide si un nombre ntel que nest premier ou non en essayant toutes les divisions de
npar les nombres premiers pvéri…ant p2·n. Pour cela il faut trouver tous les nombres
premiers inférieurs àpn.
Exemple : 97 est-il premier ? Il n’est pas divisible par 2;3;5;7;11 et 112¸97, donc 97
est premier.
program premier2 ; {recherche de la liste des nombres premiers inférieurs àn}
var
p:= array[1..500] of longint ;
m,n: longint ;
r,s,i: integer ;
begin
write(’Chercher les nombres premiers compris entre 2 et ? ’); read(n);
p[1]:=2 ; s:=1 ; m:=3;
while m<=n do
begin
r:=1;
i:=0;
while (i<=s) and (p[i]*p[i]<=m) and (r<>0) do
begin; i:=i+1; r:= m mod p[i]; end ;
if r<>0 then begin s:=s+1; p[s]:=m; end;
m:=m+1;
end;
writeln (’Il y a’, s ,’nombres premiers inférieurs ou égaux à ’, n);
i:=0;
repeat
i:=i+1 ; writeln (’i =’,i,’ ’, p[i]) ;
until i=s;
end.
4.3 Crible d’Eratosthène
La méthode utilisée dans ce programme est celle du célèbre crible d’Eratosthène. Elle
permet d’obtenir la liste des nombres premiers inférieurs ou égaux àun nombre n…xé à
l’avance. La voici :
- Choisir n,
- Ecrire la liste des nombres de 2àn,
- Entourer 2,
- Supprimer tous les multiples de 2dans la liste,
4
- Entourer le premier nombre non barréde la liste suivant 2, soit 3. Ce nombre ne possède
pas de diviseur premier strictement inférieur àlui, donc sera premier,
- Supprimer tous les multiples de 3dans la liste,
- etc
- S’arrêter dès que le dernier nombre entouré é levéau carrédépasse n.
Tous les nombres premiers de la liste sont alors entourés.
Exemple : n= 40. Notons qu’on peut s’arrêter à7car 72>40.
2 3 /4 5 /6 7 /8/9 1 /0
11 1 /2 13 1 /4 1 /5 1 /6 17 1 /8 19 2 /0
2/1 2 /2 23 2 /4 2 /5 2 /6 2 /7 2 /8 29 3 /0
31 3 /2 3 /3 3 /4 3 /5 3 /6 37 3 /8 3 /9 4 /0
program eratosth ; {Crible d’Eratosthène}
const
n=100; {ou tout nombre inférieur ou égal à32765}
var
p: array[2..n] of boolean;
m,i,k: longint ;
begin
for i:=2 to n do p[i]:=true; {initialisation}
m:=2;
while (m<=n) do
begin
{écriture du dernier nombre premier m trouvé}
writeln(m); k:=m;
{suppression des multiples de m}
while (k+m<=n) do begin k:=k+m; p[k]:=false; end;
i:=m+1;
{recherche du premier nombre non barrésituéaprès m}
while (i<=n) and (p[i]:=false) do begin i:=i+1; end;
m:=i;
end;
end.
5 Application du Théorème fondamental : calcul des PGCD
et PPCM de 2entiers
Soient
½a=up®1
1:::p®n
n
b=vp¯1
1:::p¯n
n
les décompositions en produit de facteurs premiers des deux entiers relatifs aet b. L’entier
adivise bsi, et seulement si, ®i·¯ipour tout i. En e¤et adivise bsi, et seulement si,
5
1 / 7 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans l'interface ou les textes ? Ou savez-vous comment améliorer l'interface utilisateur de StudyLib ? N'hésitez pas à envoyer vos suggestions. C'est très important pour nous!