Leçon 13 : Nombres premiers, existence et unicité de la décomposition d’un entier en produit de facteurs premiers. Infinitude de l’ensemble des nombres premiers. Exemples d’algorithmes de recherche de nombres premiers. Pré-requis : − Notion de division euclidienne dans Z. − PGCD et PPCM de deux entiers. − Notions de diviseur, multiple, ensemble de diviseurs. − Nombres premiers entre eux, Théorème de Gauβ. Cadre : Dans toute la suite, un entier naturel premier sera appelé « nombre premier ». On notera P l’ensemble des nombres premiers. On notera D(n) l’ensemble des diviseurs de n. Par abus de langage, l’expression « n entier » signifiera « n entier naturel ». 1 Généralités Définition 1. Un entier n ≥ 2 est dit premier s’il admet exactement deux diviseurs : 1 et lui-même, i.e. si D(n) = {1, n}. Exemple. − 2 est premier. C’est par ailleurs le seul entier pair premier. − 3, 5, 7 sont premiers. Lemme 2. Tout entier a ≥ 2 admet un diviseur premier. Preuve. Soit a un entier supérieur à 2. Deux cas se présentent : • • Si a est premier, alors a admet lui-même comme diviseur. Si a n’est pas premier, a possède un diviseur strictement compris entre 1 et a. On note a1, , an les diviseurs de a que l’on range par ordre croissant, on a alors D(a) = {1, a1, , an , a}. On a a1 premier. En effet, si a1 n’était pas premier, il existerait un diviseur d de a1 compris strictement entre 1 et a1, et on aurait d|a1 et a1|a, donc d|a ce qui est absurde (car d 1 et a1 est le plus petit diviseur de a strictement plus grand que 1.). 1 2 Section 1 Proposition 3. Tout nombre premier p est premier avec tout entier n qu’il ne divise pas. Preuve. On a D(p) = {1, p}. Si p ∤ n, alors p D(n) et ainsi D(p) ∩ D(n) = {1}. Corollaire 4. Deux nombres premiers distincts p et q sont premiers entre eux. Preuve. PGCD(p, q)|p PGCD(p, q) ∈ D(p) = {1, p} car p est premier. PGCD(p, q)|q PGCD(p, q) ∈ D(q) = {1, q } car q est premier. Ainsi PGCD(p, q) ∈ D(p) ∩ D(q) = {1}, et on a donc PGCD(p, q) = 1. Proposition 5. Soit p un nombre premier, et soit a et b deux entiers. Alors p|ab p|a ou p|b. Preuve. Si p ne divise pas a, par la proposition 3., il est premier avec a, donc si p|ab, on a forcément p|b, par le théorème de Gauβ. Corollaire 6. Si un nombre premier divise un produit de facteurs premiers, alors il est égal à l’un d’entre eux. Preuve. Cela découle de la proposition 5. et du corollaire 4.. Proposition 7. Un entier n ≥ 2 est premier si, et seulement s’il n’admet pas de diviseur d0 1 vérifiant √ d0 > n . Preuve. 2 Montrons l’implication directe par contraposée : Si n admet un diviseur d0 > 1 tel que d0 ≤ n, alors on a 1 < d0 < n et n n’est pas premier. Réciproquement, tout entier n ≥ 2 non premier admet un diviseur premier d0 différent de 1 et lui-même. D’où n = d0 × Q avec Q ∈ N et d0 ≤ Q. Ainsi √ 2 2 d0 × Q ≥ d0 n ≥ d0 d0 ≤ n Exemple. Le crible d’Eratosthène1 : 3 Décomposition d’un entier en produit de facteurs premiers Principe : Pour trouver tous les nombres premiers entre 2 et n, on écrit et répertorie tous les entiers entre 2 et n dans un tableau. Ensuite, on procède comme suit : − On barre tous les entiers pairs (car ils admettent 2 comme diviseur) sauf 2. − On barre ensuite tous les multiples de 3 sauf 3. − Le premier entier non barré n’est multiple ni de 2, ni de 3. Il est donc premier et il s’agit de 5. On barre donc tous les multiples de 5 sauf 5. − L’entier suivant non barré n’est multiple ni de 2, ni de 3, ni de 5. Il est donc premier et il s’agit de 7. On barre donc tous les multiples de 7 sauf 7. − On itère le procédé de la même manière en barrant tous les multiples des nombres premiers suivants 7 sauf eux-mêmes. √ On s’arrête lorsqu’on a barré tous les multiples des nombres premiers p vérifiant p ≤ n . − Le tableau suivant donne les liste des nombres premiers entre 2 et 100 : 11 21 31 41 51 61 71 81 91 2 12 22 32 42 52 62 72 82 92 3 13 23 33 43 53 63 73 83 93 4 14 24 34 44 54 64 74 84 94 5 15 25 35 45 55 65 75 85 95 6 16 26 36 46 56 66 76 86 96 7 17 27 37 47 57 67 77 87 97 8 18 28 38 48 58 68 78 88 98 9 10 19 20 29 30 39 40 49 50 59 60 69 70 79 80 89 90 99 100 Tableau 1. Un exemple du crible d’ératosthène (n = 100) Théorème 8. P est infini. Preuve. Supposons que card(P) = k, i.e. P = {p1, , pk }. Considérons l’entier n = p1 pk + 1. Aucun des nombres premiers de P ne divise n (car le reste de la division euclidienne de n par un quelconque élément de P vaut 1), et comme 2 est un nombre premier, 2 est un élément de P donc il existe i ∈ {1, , k} tel que pi = 2 et n = 2p1 pi−1 pi+1 pk + 1 > 2, donc, par le lemme 2., n admet un diviseur premier q, impliquant q ∈ P, ce qui est absurde. 2 Décomposition d’un entier en produit de facteurs premiers 1. On reviendra sur le crible, notamment avec une programmation possible à la calculatrice, dans les annexes. 4 Section 2 Théorème 9. Tout entier n > 2 se décompose de manière unique sous la forme n= k Y i pα i (1) i=1 où les pi sont des nombres premiers tels que p1 < p2 < < pk et où les (αi)i∈{1, ,k} sont des entiers non nuls. L’écriture (1) définit ce que l’on appelle la décomposition de n en produit de facteurs premiers2. Preuve. • Existence : On montre par récurrence que tout entier n ≥ 2 admet une décomposition en produit de facteurs premiers. Si n = 2, 2 est premier et il est son seul facteur premier. On pose P(n) la propriété : « Tout entier k tel que 2 ≤ k ≤ n admet une décomposition en produit de facteurs premiers. » Pour l’entier n + 1, deux cas se présentent : − Si n + 1 est premier, il est son seul facteur premier et se décompose donc en produit de facteurs premiers. − Si n + 1 n’est pas premier, d’après le lemme 2., il admet un diviseur premier q, ainsi n + 1 = ql avec l < n + 1 donc l ≤ n et on applique P(n) à l. Donc n + 1 admet une décomposition en produit de facteurs premiers. D’où, pour tout n ∈ N, n admet une décomposition en produit de facteurs premiers. • Unicité : − Si n est premier, il est son seul et unique facteur premier, donc admet une unique décomposition en produit de facteurs premiers. − Si n n’est pas premier, alors il existe p1, , pl0 avec p1 < < pl0, q1, , ql1 avec q1 < < ql1 des nombres premiers distincts et α1, , αl0, β1, , βl1 des entiers non nuls tels que β1 l0 l1 1 pα 1 pl0 = n + 1 = q1 ql1 α β Supposons que l0 < l1. On a p1 | q1β1 ql1l1, donc il existe i ∈ {1, , l1} tel que p1 | qi, impliquant que p1 = qi (par le corollaire 7.) et l’ordre des termes n’intervenant pas, on peut supposer p1 = q1, et ainsi, on a, β 1 −1 pα pl0l0 = q1β1−1 ql1l1 1 α β En raisonnant ainsi, de proche en proche, on obtient que p1 = q1, , pl0 = ql0 et ainsi p1β1 −α1 pl0l0 β −αl0 0 +1 × ql0l+1 ql1l1 = 1 β β impliquant que βi = 0 pour i ∈ Jl0 + 1, l1K et que βi − αi = 0 pour i ∈ J1, l0K. D’où on a l1 = l0 et α i = βi pour i ∈ J1, l0K On a donc montré que cette décomposition est unique pour tout entier n ≥ 2. 2. Ce théorème est en fait le fait caché que Z est un anneau factoriel. Ce caractère de l’anneau Z sera abordé dans les annexes. 5 Divers résultats utilisant les nombres premiers Une application de ce théorème est le calcul du PGCD et du PPCM de deux entiers.3 En effet, lorsqu’on connait la décomposition de deux entiers n et m en produits de facteurs premiers, on peut écrire n= k Y i=1 i pα et i m= k Y β pj j j=1 où on a p1 < < pk des nombres premiers et α1, , ak , β1, , βk des entiers non nuls. La condition n|m équivaut à dire que ∀i ∈ {1, , k }, αi ≤ βi. En effet, n|m veut dire qu’il existe c ∈ N tel que m = nc. Notons c = p1γ1 pkγk la décomposition de c. La décomposition de m en produit de facteurs premiers étant unique, il en résulte que pour tout i ∈ {1, , k}, βi = αi + γi. Ainsi, d = pν11 pνkk divise à la fois n et m si, et seulement si les puissances di de d vérifient di ≤ αi et di ≤ βi. Donc, dans tous les cas, pour tout i ∈ k , βk ) 1, β1) = δ = PGCD(n, m). Un raisonnement pmin(α {1, , k}, di ≤ min (αi , βi), donc d divise pmin(α 1 k max(αk ,βk) max(α1,β1) analogue nous donne PPCM(n, m) = µ = p1 . Pour récapituler, on a les formules sui pk vantes : k k Y Y i ,βi) i , βi) PGCD(n, m) = pmin(α et PPCM(n, m) = pmax(α i i i=1 i=1 Exemple : On calcule le PGCD et le PPCM de n = 6 et m = 512 : n = 2 × 3 et m = 29 ainsi PGCD(n, m) = 2 et PPCM(n, m) = 29 × 3 = 1536 3 Divers résultats utilisant les nombres premiers Théorème 10. (Petit théorème de Fermat) Soit p un nombre premier et a un entier non nul. Alors a p ≡ a mod(p) Preuve. Considérons deux cas : - Si a est un multiple de p, le résultat se déduit immédiatement du fait que ap − a = kp, avec k entier. - Si a n’est pas un multiple de p, les restes possibles de la division euclidienne de a par p sont les éléments de l’ensemble R p(a) 6 {1, 2, , (p − 1)}. Considérons alors la liste R p′ (a) 6 {a, 2a, , (p − 1)a}. Tous ces nombres sont distincts, et non nuls modulo p. En effet, un élément de cette liste est de la forme ka, k ∈ J1, p − 1K, et on a les conséquences suivantes : • • ka n’est pas divisible par p, car, p étant premier, il est premier avec tous les nombres qui lui sont strictement inférieurs, donc il est premier avec k, et si p divisait ka, par le lemme de Gauβ, p diviserait a, ce qui est absurde. Si k et k ′ (k, k ′ ∈ J1, p − 1K) sont distincts modulo p (i.e. k − k ′ 0 mod(p)), alors ka et k ′a le sont aussi modulo p. En effet, supposons le contraire, i.e. ka ≡ k ′a mod(p), alors a(k − k ′) ≡ 0 mod(p), ce qui est impossible par hypothèse (car a 0 mod(p) et k − k ′ 0 mod(p)). 3. On reviendra sur ce résultat avec un résultat fort sympathique présentable à la calculatrice dans les annexes. 6 Section 3 En conséquence, les éléments de R p′ (a) sont encore, modulo p, et dans un ordre sans doute différent, les éléments de R p(a), et on peut écrire modulo p, p−1 Y i=1 ia ≡ p−1 Y k mod(p) k=1 ap−1(p − 1)! ≡ (p − 1)! mod(p) Comme (p − 1)! 0 mod(p) (car chacun des termes de (p − 1)! n’est congru à 0 modulo p), on a le résultat cherché, à savoir a p−1 ≡ 1 mod(p) ou encore a p ≡ a mod(p) Théorème 11. (Théorème de Wilson) Soit p un entier naturel, p ≥ 2. p est un nombre premier si, et seulement si (p − 1)! ≡ − 1 mod(p) Preuve.4 Montrons par contraposée l’implication directe : Supposons p non premier, il admet donc un diviseur d (1 < d < p) tel que p = kd (avec aussi 1 < k < p). Considérons deux cas : • • Si k et d sont distincts, k et d sont présents dans la liste L = {1, 2, , p − 1} et il suffit que l’on ait (p − 1)! ≡ 0 mod(p) Si k et d sont égaux, i.e. p = k 2, deux cas encore se présentent : Si k est non premier, il suffit de reprendre le même raisonnement que pour le point précédent. Si, en revanche, k est premier, k est présent dans la liste L. Montrons qu’il y a un multiple de k dans L1 = {k + 1, k + 2, , p − 1}. Or p − 1 = k 2 − 1 = (k − 1)(k + 1). Ainsi : − − Si k > 2, on a p − 1 > 2k (car k + 1 > k), et au moins 2k figure dans la liste L1. Si k = 2, on a p = 4 et (p − 1)! = 3! = 6. Or 6 ≡ 2 mod(4) et non pas à − 1. On a donc montré que si p n’etait pas premier, (p − 1)! − 1 mod(p). Montrons l’autre implication : Supposons p premier. Si p = 2, le cas est rapide à traiter car (2 − 1)! = 1 ≡ − 1 mod(2). Si p > 2, considérons les éléments de la liste L ′ = {2, , p − 2}. Comme p > 2, p est impair donc p − 3 est pair, et il y a exactement p − 3 termes dans la liste L ′. Montrons que si on choisit x ∈ L ′, il existe un unique y ∈ L ′ différent de x tel que xy ≡ 1 mod(p). En effet, cet élément y est unique : Soit (y1, y2) ∈ (L ′)2 tels que xy1 ≡ 1 mod(p) et xy2 ≡ 1 mod(p). Comme x ∈ L ′, x < p et puisque p est premier, x 0 mod(p). Or, on a x(y1 − y2) ≡ 0 mod(p) et, par ce qui a été dit précédemment, on a forcément y1 − y2 ≡ 0 mod(p), soit y1 = y2 (car y1 et y2 sont dans L ′, donc y1 < p et y2 < p). Cet élément y existe : En effet, pour k ∈ L ′, considérons la liste L p′ = {k, 2k, , (p − 1)k}. Tous ces produits sont distincts et non nuls, donc le sont aussi modulo p puisque p est premier, et forment donc une suite de p − 1 nombres modulo p, à savoir 1, 2, , p − 1. Un seul de ces produits vaut 1 modulo p. • • Ce n’est pas k puisque k ∈ L ′. Ce n’est pas k(p − 1) car k(p − 1) = kp − k ≡ − k mod(p) or − k ≡ p − k mod(p). Donc k(p − 1) est au moins égal à 2. 4. Une autre preuve de ce théorème sera abordée dans les annexes. 7 Annexes C’est donc un produit de la liste L p′ . Ainsi, on a (p − 1)! = 2 × 3 × × (p − 1) ≡ 1 × 1 × × 1 × (p − 1) mod(p) et (p − 1) ≡ − 1 mod(p) On a donc montré que si p est premier, on a (p − 1)! ≡ − 1 mod(p) 4 Annexes 4.1 Crible d’Eratosthène : le retour ! Pour réaliser le crible, nous avons besoin au préalable d’une fonction qui teste la primalité d’un entier. Voici l’algorithme, écrit sous T.I. Voyage 200 : prima(n) Func Local k 2→k While k<n If pgcd(k,n)=1 Then k+1 → k Else Return 0 EndIf EndWhile Return 1 EndFunc Voici des tests faits avec 15 et 31. Nous savons que 15 n’est pas premier (car divisible par 5) et que 31 l’est. En fait, le critère de primalité utilisé ici est celui donné dans la proposition 3. : 8 Section 4 Cette fonction ainsi définie, on va pouvoir écrire un « crible d’Eratosthène ». Si c’est mis entre guillemets, ce n’est pas pour des prunes, et le lecteur averti remarquera en fait que le « crible » effectué n’est pas celui d’Eratosthène effectué dans cette leçon... En effet, celui qu’on va présenter ici teste la primalité de TOUS les nombres compris entre 1 et n, alors que le crible d’Eratosthène NE reteste PAS les entiers multiples de nombres premiers déjà détectés. Mais néanmoins l’algorithme suivant, écrit sous T.I. Voyage 200, est quand même accepté par les jurys du CAPES (et il faut savoir que si vous vous souvenez déjà d’un algorithme pendant les deux heures de préparation, c’est déjà une sacrée performance...) : eratost(n) Func Local k,l nouvList(0) → l 2→k While k 6 n If prima(k)=1 Then augmente(l,{k}) → l EndIf k+1 → k EndWhile Return l EndFunc Et voici une liste sortie pour n = 19 : 4.2 Décomposition en produits de facteurs premiers : le retour ! Avec la TI voyage 200 : 4.3 Une autre preuve du théorème de Wilson... Rappelons l’énoncé du théorème : Théorème 12. (Théorème de Wilson) Soit p un entier naturel, p ≥ 2. p est un nombre premier si, et seulement si (p − 1)! ≡ − 1 mod(p) Preuve. Si p est premier, alors Z/pZ est un corps commutatif à p éléments, et tout élément du groupe multiplicatif ((Z/pZ)×, × ) = ((Z/pZ) {0̄}, × ) est racine du polynôme P (X) = X p−1 − 1 (par le théorème 10.) et on a ainsi, pour tout X̄ ∈ (Z/pZ)×, P (X̄ ) = X̄ p−1 − 1̄ = p−1 Y k=1 (X̄ − k¯ ) 9 Compléments et bibliographie En évaluant ce polynôme en X̄ = 0̄, il vient − 1̄ = p−1 Y k=1 − k¯ = ( − 1) p−1(p − 1)! Si p = 2, on a 1̄ = − 1̄ et pour p > 2, p est impair et ainsi ( − 1) p−1 = 1 d’où on a − 1̄ = (p − 1)! dans Z/pZ, soit (p − 1)! ≡ − 1 mod(p) Réciproquement, si p > 2 est tel que (p − 1)! = − 1̄ dans Z/pZ, Alors tout diviseur d de p compris entre 1 et p − 1 diviserait (p − 1)! = − 1 + kp, donc va diviser aussi − 1, ce qui donne d = 1 et donc p est premier. 4.4 Nombres de Fermat et de Mersenne 4.5 Caractérisation des nombres premiers de la forme 4n + 1 ou 4n + 3 4.6 Factorialité de Z 5 Compléments et bibliographie Pour aller plus loin : − Le théorème d’Euler, comme une généralisation possible du petit théorème de Fermat. − Facteurs premiers et fonction ζ de Riemann. − Infinitude de l’ensemble des nombres premiers et fonction ζ de Riemann. − Probabilités et fonction ζ de Riemann. − Nombres de Bernouilli et fonction ζ de Riemann (extrait de l’épreuve 1 session 2009 du CAPES). − Théorie des corps finis, théorie de Galois. Bibliographie : − http://astroplus.perso.neuf.fr/ − http://serge.mehl.free.fr/anx/th_wilson.html − http://serge.mehl.free.fr/anx/th_fermat_pt.html