Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7...

19
Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de Fermat : après avoir vu le théorème de Lehmer dans le chapitre précédent, nous nous intéressons de plus près aux entiers non premiers qui vérifient le théorème de Fermat. Leur étude apporte de nombreuses informations… Sommaire Chapitre 7. Pseudo-primalité .................................................................................. 97 1. Nombres pseudo-premiers de base a .................................................... 98 1.1 Que sont ces nombres ? ................................................................ 98 1.2 Recherche systématique ................................................................ 98 1.3 Vers un test de primalité ? ........................................................... 100 1.4 Les nombres de Carmichael ........................................................ 101 1.5 Test de primalité de Fermat ......................................................... 104 2. Nombres pseudo-premiers forts ............................................................ 105 2.1 Une propriété intéressante des nombres premiers .................. 105 2.2 Les nombres pseudo-premiers forts........................................... 107 2.3 Établir la liste des nombres pseudo-premiers forts .................. 109 2.4 Vers un test de primalité............................................................... 111 2.5 Vers un test de primalité probabiliste (dit de Miller-Rabin) ..... 113 Chapitre 7. Pseudo-primalité

Transcript of Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7...

Page 1: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

Christian Vassard (IUFM Rouen)

7

Ch

ap

itre

Nous poursuivons l’investigation autour de la réciproque du théorème de Fermat : après avoir vu le

théorème de Lehmer dans le chapitre précédent, nous nous intéressons de plus près aux entiers non

premiers qui vérifient le théorème de Fermat. Leur étude apporte de nombreuses informations…

Sommaire

Chapitre 7. Pseudo-primalité .................................................................................. 97

1. Nombres pseudo-premiers de base a .................................................... 98

1.1 Que sont ces nombres ? ................................................................ 98

1.2 Recherche systématique ................................................................ 98

1.3 Vers un test de primalité ? ........................................................... 100

1.4 Les nombres de Carmichael ........................................................ 101

1.5 Test de primalité de Fermat ......................................................... 104

2. Nombres pseudo-premiers forts ............................................................ 105

2.1 Une propriété intéressante des nombres premiers .................. 105

2.2 Les nombres pseudo-premiers forts ........................................... 107

2.3 Établir la liste des nombres pseudo-premiers forts .................. 109

2.4 Vers un test de primalité ............................................................... 111

2.5 Vers un test de primalité probabiliste (dit de Miller-Rabin) ..... 113

Chapitre 7.

Pseudo-primalité

Page 2: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

98 Mathématiques et TI-Nspire

© T³ France 2010 / Photocopie autorisée

1. Nombres pseudo-premiers de base a

1.1 Que sont ces nombres ?

On a vu précédemment que la réciproque du théorème de Fermat était fausse : mais elle n’est fausse

que pour quelques nombres composés, plutôt rares comme on l’a vu, et qu’il peut être intéressant de

mieux connaître.

Ces nombres, qui se comportent du point de vue du théorème de Fermat comme des nombres

premiers1, sont appelés pseudo-premiers, comme le précise la définition suivante.

Définition

Soit a un entier > 1.

Un entier n 2 est dit pseudo-premier de base a si :

n n’est pas premier ;

an–1

1 (mod n).

Remarquons que, lorsque n est un nombre pseudo-premier de base a, n et a sont alors nécessairement

premiers entre eux. Écrire en effet que an–1

1 (mod n) revient à affirmer l’existence d’un entier k tel

que an – 1

– 1 = kn, soit an – 2

× a – k × n = 1. Le théorème de Bézout permet de conclure que n et a sont

premiers entre eux.

1.2 Recherche systématique

Le tableur peut être employé pour lister directement les nombres pseudo-premiers de base 2 par

exemple, compris entre deux entiers donnés.

Les valeurs 2 et 100002 sont stockées dans les variables m et n, la base dans la variable a. Remarquez

bien la formule saisie dans la zone grisée de la colonne F : elle illustre une nouvelle fois l’efficacité

de void. Cette formule permet de lister les entiers entre 2 et 10 000 qui vérifient une propriété, et

seulement eux.

1 Sans en être...

2 Avec la calculatrice, entre 2 et 1000 semble plus raisonnable…

Page 3: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

Pseudo-primalité 99

© T³ France 2010 / Photocopie autorisée

Le seq, combiné avec le when, met à void (vide) les entiers qui ne vérifient pas la propriété ; le

delvoid les supprime de la liste.

Rien n’oblige d’ailleurs à passer par le tableur. L’instruction précédente peut être directement dans

l’application Calculs, en précisant toutefois les valeurs de a, m et n :

Enfin et plus classiquement, une fonction dirait la même chose, en étant sans doute un peu plus

rapide : un tel nombre i d’une part n’est pas premier et d’autre part doit vérifier 1 1 mod ia i . Si

l’on rencontre un tel i, il suffit de le mémoriser dans la liste l.

En demandant nos recherches entre 2 et 10000, les résultats sont les suivants :

nombre pseudo-premiers de base 2, parfois appelés nombres de Poulet :

341, 561, 645, 1 105, 1 387, 1 729, 1 905, 2 047, 2 465, 2 701, 2 821, 3 277, 4 033,

4 369, 4 371, 4 681, 5 461, 6 601, 7 957, 8 321, 8 481, 8 911, 10 261, 10 585, 11 305,

12 801, 13 741, 13 747, 13 981, 14 491, 15 709, 15 841, 16 705, 18 705, 18 721,

19 951, 23 001, 23 377, 25 761, 29 341, 30 121, 30 889, 31 417, 31 609, 31 621,

33 153, 34 945, 35 333, 39 865, 41 041, 41 665, 42 799, 46 657, 49 141, 49 981,

52 633, 55 245, 57 421, 60 701, 60 787, 62 745, 63 973, 65 077, 65 281, 68 101,

72 885, 74 665, 75 361, 80 581, 83 333, 83 665, 85 489, 87 249, 88 357, 88 561,

90 751, 91 001, 93 961 ;

nombres pseudo-premiers de base 3 :

91, 121, 286, 671, 703, 949, 1 105, 1 541, 1 729, 1 891, 2 465, 2 665, 2 701, 2 821,

3 281, 3 367, 3 751, 4 961, 5 551, 6 601, 7 381, 8 401, 8 911, 10 585, 11 011, 12 403,

14 383, 15 203, 15 457, 15 841, 16 471, 16 531, 18 721, 19 345, 23 521, 24 046,

24 661, 24 727, 28 009, 29 161, 29 341, 30 857, 31 621, 31 697, 32 791, 38 503,

41 041, 44 287, 46 657, 46 999, 47 197, 49 051, 49 141, 50 881, 52 633, 53 131,

55 261, 55 969, 63 139, 63 973, 65 485, 68 887, 72 041, 74 593, 75 361, 76 627,

79 003, 82 513, 83 333, 83 665, 87 913, 88 561, 88 573, 88 831, 90 751, 93 961,

96 139, 97 567 ;

Page 4: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

100 Mathématiques et TI-Nspire

© T³ France 2010 / Photocopie autorisée

nombres pseudo-premiers de base 5 :

4, 124, 217, 561, 781, 1 541, 1 729, 1 891, 2 821, 4 123, 5 461, 5 611, 5 662, 5 731,

6 601, 7 449, 7 813, 8 029, 8 911, 9 881, 11 041, 11 476, 12 801, 13 021, 13 333,

13 981, 14 981, 15 751, 15 841, 16 297, 17 767, 21 361, 22 791, 23 653, 24 211,

25 327, 25 351, 29 341, 29 539, 30 673, 32 021, 35 371, 36 661, 36 991, 38 081,

40 501, 41 041, 42 127, 44 173, 44 801, 45 141, 46 657, 47 641, 48 133, 50 737,

50 997, 52 633, 53 083, 53 971, 56 033, 58 807, 59 356, 63 973, 67 921, 68 101,

68 251, 75 361, 79 381, 80 476, 88 831, 90 241, 91 636, 98 173 ;

nombres pseudo-premiers de base 7 :

6, 25, 325, 561, 703, 817, 1 105, 1 825, 2 101, 2 353, 2 465, 3 277, 4 525, 4 825,

6 697, 8 321, 10 225, 10 585, 10 621, 11 041, 11 521, 12 025, 13 665, 14 089, 16 725,

16 806, 18 721, 19 345, 20 197, 20 417, 20 425, 22 945, 25 829, 26 419, 29 234,

29 341, 29 857, 29 891, 30 025, 30 811, 33 227, 35 425, 38 081, 38 503, 39 331,

45 991, 46 657, 49 241, 49 321, 50 737, 50 881, 58 825, 59 305, 59 641, 62 745,

64 285, 64 681, 65 131, 67 798, 75 241, 75 361, 76 049, 76 627, 78 937, 79 381,

84 151, 87 673, 88 399, 88 831, 89 961, 92 929, 95 821, 97 921.

1.3 Vers un test de primalité ?

On peut montrer que les nombres pseudo-premiers de base a quelconque sont en nombre infini. Voici

par exemple le nombre d’entiers pseudo-premiers de base 2 inférieurs à la borne indiquée :

Borne 103

104

105

106

107

108

109

1010

Nombre 3 22 78 245 750 2057 5597 14884

Ils sont cependant beaucoup moins nombreux que les nombres premiers. Ainsi, il y a seulement 245

nombres pseudo-premiers de base 2 inférieurs à 1 million contre 78 494 nombres premiers…

D’où l’idée d’un test pour savoir si un entier n est premier ou non… Car finalement, dès l’instant que

2n–1

1 (mod n)3, on peut être sûr

soit que n est premier (c’est très probable4),

soit que n est pseudo-premier de base 2 (beaucoup moins probable d’après les remarques

précédentes).

C’est le cas par exemple avec l’entier 252 601 :

On peut alors se dire qu’il suffit de tester d’autres bases que 2 et penser que n a d’autant plus de

chances d’être premier qu’il se comporte comme un nombre premier pour de nombreuses bases. C’est

d’ailleurs le cas pour notre entier 252 061, qui est pseudo-premier pour toutes les bases de 2 à 100

comme on peut le voir ci-dessous :

3 Sinon, on est sûr que n est composé, comme nous l’avons vu plus haut.

4 On peut estimer cette probabilité pour un nombre inférieur à 106 à 78 494/(78 494+245) 99,7%, ce qui est très confortable !

Page 5: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

Pseudo-primalité 101

© T³ France 2010 / Photocopie autorisée

Sauf qu’il existe effectivement des nombres pseudo-premiers n pour toutes les bases5 a... Pour ceux-

là, la répétition du test n’apporte aucune certitude supplémentaire…

D’ailleurs, quand on observe les listes de nombres pseudo-premiers obtenues précédemment, cela

semble être le cas pour 561, 1 105 ou 1 729... Ou 252 601 qui sait ? De tels nombres sont appelés

nombres de Carmichael, en hommage au mathématicien américain Robert Carmichael (1879-1967)

qui les a étudiés au début du XXe siècle.

1.4 Les nombres de Carmichael

Définition

Soit n un entier.

Un entier n composé est un nombre de Carmichael lorsque, pour tout entier a premier avec n,

on a an – 1

1 (mod n).

Ainsi l’examen des listes précédentes semble montrer que 561 est un nombre de Carmichael.

Prouvons-le ! Autrement dit, montrons que ce nombre entier est pseudo-premier pour toutes les bases

a telles que pgcd(561, a) = 1.

Cela semble se confirmer si l’on fait quelques autres essais, en excluant 3, 11 et 17 car 561 n’est

premier avec aucun de ces nombres :

5 Telles que pgcd(n, a) = 1...

Page 6: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

102 Mathématiques et TI-Nspire

© T³ France 2010 / Photocopie autorisée

Supposons donc que a soit premier avec 561. Comme 561 = 3 11 17, remarquons aussi que a est

premier avec 3, ainsi qu’avec 11 ou 17, qui sont les trois facteurs premiers de 561.

L’application du petit théorème de Fermat conduit aux congruences suivantes :

a2 1 (mod 3) ;

a10

1 (mod 11) ;

a16

1 (mod 17).

Il est alors essentiel de remarquer que 560 est un multiple de 2, de 10 mais aussi de 16.

Ce qui permet de déduire des congruences précédentes que :

a560

= (a2)

280 1 (mod 3) ;

a560

= (a10

)56

1 (mod 11) ;

a560

= (a16

)35

1 (mod 17).

Des deux premières congruences, on tire :

a560

– 1 = 3k = 11q, avec k et q entiers.

D’après le théorème de Gauss, comme 11 divise 3k et est premier avec 3, 11 divise k : il existe donc

un entier naturel k’ tel que k = 11k’.

Finalement a560

– 1 = 3 × 11 × k’.

La troisième congruence donne : a560

– 1 = 17r, avec r entier.

Donc 3 × 11 × k’ = 17r et le même raisonnement montre que 17 divise k’. Il existe donc un entier k’’

tel que 17k’’ = k’. Ceci prouve que :

a560

– 1 = 3 × 11 × 17 × k’’

soit encore

a560

1 (mod 3 11 17 = 561)

(on aurait pu conclure directement à partir des trois congruences initiales en remarquant que 3, 11 et

17 sont premiers entre eux deux à deux).

Bref, 561 est donc bien un nombre de Carmichael.

Le même raisonnement s’appliquerait d’ailleurs à un entier n s’écrivant sous la forme ip et tel que

pi – 1 divise n – 1.

C’est le cas par exemple des entiers 1 105 ou 1 729, que nous avions remarqués dans les listes, ainsi

d’ailleurs de 252 601, ainsi que le montre l’écran suivant :

Page 7: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

Pseudo-primalité 103

© T³ France 2010 / Photocopie autorisée

Rien n’empêche, sur la base de ce critère, de lister les nombres de Carmichael parmi les pseudo-

premiers de base 2. On reprend le même principe que dans les exemples précédents et on est sûr que

l’on a 0 dans toutes les divisions, et donc un nombre de Carmichael du type précédent, lorsque la

somme des quotients vaut 0 :

On obtient la liste suivante :

soit les 32 nombres de Carmichael suivants :

561, 1 105, 1 729, 2 465, 2 821, 6 601, 8 911, 10 585, 15 841, 29 341, 41 041, 46 657, 52 633,

62 745, 63 973, 75 361, 101 101, 115 921, 126 217, 162 401, 172 081, 188 461, 252 601,

278 545, 294 409, 314 821, 334 153, 340 561, 399 001, 410 041, 449 065, 488 8816.

Il n’en manque aucun, parmi ceux qui sont inférieurs à 5000007. Bien que rien ne le garantisse, notre

méthode a permis de récupérer l’intégralité des nombres de Carmichael inférieur à 500 000, qui

vérifient tous la même propriété que 561. Il y en a très peu. Ci-dessous le tableau donnant le nombre

de nombres de Carmichael inférieurs à une borne donnée :

Borne 103

104

105

106

107

108

109

1010

Nombre 1 7 16 43 105 255 646 1 547

On a démontré récemment (en 1992) qu’il y a une infinité de nombres de Carmichael.

6 Et en voilà d’autres, donnés toujours par mon ordinateur qui refuse de baisser les bras dans cette recherche :

{512 461,530 881,552 721,656 601,658 801,670 033,748 657,825 265,838 201,852 841,997 633}.

7 Voir par exemple http://www.research.att.com/~njas/sequences/A002997

Page 8: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

104 Mathématiques et TI-Nspire

© T³ France 2010 / Photocopie autorisée

1.5 Test de primalité de Fermat

L’étude précédente conduit à conclure que si p est composé, alors ap – 1

est de façon très improbable

congru à 1 modulo p pour une valeur arbitraire de a, ce qui représente une sorte de réciproque

probabiliste du théorème de Fermat. On considèrera donc que si 1 1 modpa p , alors p est très

probablement premier. L’idée est de tester plusieurs base a différentes : au pire, on tombera sur un

nombre de Carmichael et on se trompera, mais ils sont très peu nombreux.

Le principe précédent est mis en œuvre dans ce que l’on appelle le test de primalité de Fermat.

Nous avons choisi de tester l’entier n avec 4 bases « témoins » 2, 3, 5 et 7 en calculant

2n – 1

, 3n – 1

, 5n – 1

et 7n – 1

modulo n8.

si l’un de ces nombres n’est pas égal à 1, on est sûr que n est composé, d’après la contraposée

du théorème de Fermat ;

si les quatre nombres valent 1, il est extrêmement probable que n soit premier ; sinon n est un

nombre de Carmichael ou simplement pseudo-premier à la fois des bases 2, 3, 5, 7. Comme

on sait par exemple qu’il n’existe que 1547 nombres de Carmichael inférieurs à 1010

contre

455 052 511 nombres premiers, la probabilité qu’il soit premier est donc d’environ

1 – 1 547

455 052 511 soit 99,9997 %.

Plus on utilise de témoins, plus le risque que n soit considéré comme premier à tort diminue, sauf si n

est un des quelques « rares » nombres de Carmichaël qui « dupent » tous les témoins, tout en étant

composés.

Le choix de quatre témoins est un compromis entre la précision, et le temps de calcul. Ci-dessous la

fonction « probabiliste » estpremp. Dire que chaque appel de pwrmod donne 1 équivaut à dire que le

produit des résultats renvoyés vaut 1 : c’est le test que nous avons choisi de faire ci-après.

Les résultats sont spectaculaires, même pour des nombres de très grande taille :

8 C’est exactement la méthode employée par le programme de chiffrage PGP pour examiner si les grands nombres aléatoires qu'il choisit

sont premiers.

Page 9: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

Pseudo-primalité 105

© T³ France 2010 / Photocopie autorisée

Comme prévu, un entier comme 252 601, nombre de Carmichael, est considéré comme premier : pas

de chance ! Par contre, 561, lui aussi nombre de Carmichael, mais aussi multiple de 3, ne renvoie pas

1 à l’un des tests9… ce qui nous sauve !

2. Nombres pseudo-premiers forts

Où l’on se rend compte que le sujet des pseudo-premiers, loin d’être épuisé, ouvre encore de

nouvelles perspectives !

2.1 Une propriété intéressante des nombres premiers

Soit n un entier premier. Dire que 2 1 modx n équivaut à dire que x 1 ou x –1 modulo

n.

Démonstration

En effet si l’on a 2 1 modx n , alors on peut en déduire que 2 1 0 modx n ou que

1 1 0 modx x n soit finalement que 1 1x x kn avec k .

Donc n premier divise le produit (x – 1)(x + 1) : ou il divise (x – 1), ou il divise (x + 1). Autrement dit

x 1 ou x –1 modulo n.

La réciproque est immédiate.

Exemples

Observons ce qui se passe avec un nombre premier impair, comme 125 468 249.

On sait d’après le théorème de Fermat que 1 125 468 2482 2 1 n modulo n. Or n – 1 est forcément un

entier pair, ce qui permet d’appliquer le résultat précédent :

2 2

1 125 468 2482

1 62 7341242 22 2 2 2 1

n

n .

On est donc sûr a priori que : 1 1

2 22 1 ou 2 1n n

modulo n. La calculatrice montre que c’est la

première congruence qui est vérifiée.

Mais 1

2

n = 62 734 124 est encore divisible par 2 et

1

22 1n

: rien n’empêche de continuer.

9 Il est impossible que 3560 1 (mod 561)… puisque 3 n’est pas premier avec 561…

Page 10: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

106 Mathématiques et TI-Nspire

© T³ France 2010 / Photocopie autorisée

Cette fois-ci, on sait que l’on aura soit 1

42 1n

soit 1

42 1n

: c’est ici la seconde congruence qui est

vraie.

Avec 1

42 1n

, on ne peut plus appliquer le théorème… on s’arrête là !

Tout ceci peut d’ailleurs se résumer dans une feuille de calcul (voir les instructions utilisées sur les

différentes figures ci-dessous).

On retrouve ce que l’on a observé ci-dessus c’est-à-dire une succession de 1, puis –1 puis un nombre

quelconque :

Dans la colonne C, la division par 2 est effectuée tant que c’est possible. Dans la colonne D, on

calcule avec pwrmod les différents

1

22k

n

modulo n.

Quand on a 1, on peut avoir 1 ou –1 dans la cellule au dessous ; quand on a –1, on ne peut rien dire de

ce qui vient après.

Un autre exemple où l’on ne rencontre jamais –1 : deux fois le reste 1... et on s’arrête car on ne peut

plus diviser le nombre par 2 :

Page 11: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

Pseudo-primalité 107

© T³ France 2010 / Photocopie autorisée

Voici donc ce que l’on peut attendre d’un nombre premier impair : une succession de 1 ou encore une

succession de 1 puis –1 puis n’importe quel nombre.

C’est ce comportement que nous allons essayer de retrouver sur des entiers composés que nous

appellerons pseudo-premiers forts : les contraintes étant importantes, les nombres composés

ressemblant aux nombres premiers du point de vue de cette propriété seront relativement rares…

2.2 Les nombres pseudo-premiers forts

On peut en donner la définition suivante :

Soit n un nombre entier impair ; n – 1 est pair, et en factorisant autant que possible l’entier 2

(au moins une fois), on peut écrire n – 1 = 2s × m où m est un entier impair.

L’entier composé n sera dit pseudo-premier fort de base a si :

ou bien 1ma modulo n ;

ou bien il existe un entier q , 0 q s – 1, 2 1q ma modulo n.

Dans le premier cas, on a une succession de 1 qui s’arrête quand la division par 2 n’est plus possible ;

dans le deuxième, on a rencontré –1, après une série de 1, puis un nombre quelconque. Cela

correspond aux deux types de comportements que nous avons relevés sur les nombres premiers.

Remarquons qu’un entier n pseudo-premier fort de base a est nécessairement un nombre pseudo-

premier de base a. Il est en effet immédiat de montrer que, dans les deux cas de la définition,

1 1 modna n . La réciproque est fausse, comme nous le verrons juste après.

Exemple

Déterminons des nombres pseudo-premiers forts de base 2

Ils sont à rechercher, s’ils existent, parmi les pseudo-premiers de base 2, dont la liste commence, on

l’a vu, par 341, 561, 645, 1 105, 1 387, 1 729, 1 905 et 2 047. Pour tous ces entiers, par définition, on

a 2n – 1

1 (mod n)...

Lesquels d’entre eux sont des pseudo-premiers forts ?

Page 12: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

108 Mathématiques et TI-Nspire

© T³ France 2010 / Photocopie autorisée

Non pour 341...

Pas plus pour 561...

Ni pour 645 !

Non plus pour 1105 !

Niet pour 1387 !

Ceinture aussi pour 1729

Page 13: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

Pseudo-primalité 109

© T³ France 2010 / Photocopie autorisée

Rideau aussi pour 1905

Et pour 2047 ? C’est le premier que l’on trouve !

Les nombres pseudo-premiers forts de base 2 semblent donc beaucoup plus rares que les pseudo-

premiers... Tellement rares que nous n’en avons déniché qu’un seul ! Employons les grands moyens...

un programme sur la calculatrice !

2.3 Établir la liste des nombres pseudo-premiers forts

Soit donc à vérifier si un entier impair n est pseudo-premier fort de base a. Excluons les cas où n

est premier, égal à 1 ou pair, bien sûr. Le programme est basé sur une boucle où l’on calcule ap

modulo n, en partant de p = n – 1 et en divisant l’exposant par 2, tant que c’est possible.

On sort de cette boucle, lorsque la division par 2 n’est plus possible ou parce que le résultat r de la

congruence n’est plus 1.

On peut alors décider si le nombre est pseudo-premier fort : c’est le cas lorsque r = 1 (cela veut dire

que la suite de tous les résultats a été 1) ou lorsque r = –1.

Le code est le suivant :

Page 14: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

110 Mathématiques et TI-Nspire

© T³ France 2010 / Photocopie autorisée

On peut par exemple vérifier avec cette fonction que 2 047 est un entier pseudo-premier fort, mais pas

341 ou 561.

Il est alors possible de dresser la liste des nombres pseudo-premiers forts de base 2, avec select_range

de la bibliothèque numtheory.

Ces nombres sont relativement rares, plus rares bien sûr que les pseudo-premiers : on comprend

aisément qu’il devient difficile pour un nombre composé d’être aussi proche d’un nombre premier

pour ces propriétés de congruence.

En étant très patient, et avec le logiciel, on obtient les résultats suivants :

liste des pseudo-premiers forts de base 2 inférieurs à 1 000 000 :

2 047, 3 277, 4 033, 4 681, 8 321, 15 841, 29 341, 42 799, 49 141, 52 633, 65 281, 74 665,

80 581, 85 489, 88 357, 90 751, 104 653, 130 561, 196 093, 220 729, 233 017, 252 601,

253 241, 256 999, 271 951, 280 601, 314 821, 357 761, 390 937, 458 989, 476 971, 486 737,

489 997, 514 447, 580 337, 635 401, 647 089, 741 751, 800 605, 818 201, 838 861, 873 181,

877 099, 916 327, 976 873, 983 401 ;

liste des pseudos-premiers forts de base 3 inférieurs à 1 000 000 :

121, 703, 1 891, 3 281, 8 401, 8 911, 10 585, 12 403, 16 531, 18 721, 19 345, 23 521, 31 621,

44 287, 47 197, 55 969, 63 139, 74 593, 79 003, 82 513, 87 913, 88 573, 97 567, 105 163,

111 361, 112 141, 148 417, 152 551, 182 527, 188 191, 211 411, 218 791, 221 761, 226 801,

228 073, 282 133, 288 163, 293 401, 313 447, 320 167, 327 781, 328 021, 340 033, 359 341,

364 231, 365 713, 385 003, 385 201, 399 001, 432 821, 443 713, 453 259, 478 297, 497 503,

504 913, 512 461, 551 881, 563 347, 625 873, 638 731, 655 051, 658 711, 679 057, 709 873,

801 139, 823 213, 859 951, 867 043, 876 961, 894 781, 951 481, 973 241, 994 507.

On remarque qu’il n’existe pas de nombre pseudo-premier fort à la fois de base 2 et 3 inférieurs à

1 000 000. En existe-t-il pour autant ? Une recherche plus approfondie avec le logiciel, mais très

longue et pénible, montre qu’entre 1 et 10 000 000, les seuls pseudo-premiers forts de base 2 et 3 sont

les entiers :

1 373 653, 1 530 787, 1 987 021, 2 284 453, 3 116 107, 5 173 601, 6 787 327.

Le plus petit nombre pseudo-premier fort à la fois de base 2 et 3 est donc 1 373 653.

Page 15: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

Pseudo-primalité 111

© T³ France 2010 / Photocopie autorisée

D’autres calculs ont été faits, dont les résultats suivent :

Bases Plus petit nombre simultanément pseudo-

premier fort par rapport à ces bases

2 2 047

2, 3 1 373 653

2, 3, 5 25 326 001

2, 3, 5, 7 3 215 031 751

2, 3, 5, 7, 11 2 152 302 898 747

2, 3, 5, 7, 11, 13 3 474 749 660 383

2, 3, 5, 7, 11, 13, 17 341 550 071 728 321

2, 3, 5, 7, 11, 13, 17, 19 341 550 071 728 321

2, 3, 5, 7, 11, 13, 17, 19, 23 41 234 316 135 705 689 041

2, 3, 5, 7, 11, 13, 17, 19, 23, 29 1 553 360 566 073 143 205 541 002 401

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31 N =

56 897 193 526 942 024 370 326 972 32110

2.4 Vers un test de primalité

Modifions le test pspf pour que les nombres premiers le passent positivement, en plus des pseudo-

premiers forts. Pour des raisons qui apparaîtront plus tard, nous choisissons cette fois de renvoyer 1 si

le nombre passe le test, 0 sinon.

10 Nous appelons ce très grand entier de 29 chiffres N, car nous nous en servirons un peu plus loin.

Page 16: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

112 Mathématiques et TI-Nspire

© T³ France 2010 / Photocopie autorisée

Nous sommes maintenant en mesure de construire un nouveau test de primalité.

Pour s’assurer à coup sûr de la primalité d’un nombre plus petit que le dernier, N, écrit dans le tableau

de la page précédente (N possède 29 chiffres), au plus 11 tests de pseudo-primalité forte sont

nécessaires.

Et si l’on considère un nombre plus grand que N, on introduit un risque, minime, d’avoir affaire avec

un nombre pseudo-premier fort.

Dans la fonction qui suit, nous avons mis dans une liste l les nombres du tableau de la page

précédente et dans une liste p les nombres premiers correspondants, de 2 à 31. On peut affirmer que :

pour un nombre strictement inférieur à 2 047 = l[1], s’il franchit le test avec le témoin

2 = p[1], c’est qu’il est premier ;

pour un nombre compris entre 2 047 = l[1] et 1 373 653 = l[2], s’il franchit le test pour les

témoins 2 = p[1] et 3 = p[2], c’est qu’il est premier.

...

pour un nombre compris entre les deux derniers entiers du tableau l[10] et l[11], s’il franchit

le test pour les témoins premiers entre 2 = p[1] et 31 = p[11], c’est qu’il est premier.

Au-delà de N, le plus grand entier du tableau, on n’a plus la certitude que le nombre soit premier

lorsqu’il franchit les tests de pseudo-primalité forte, mais une probabilité proche de 1. Par exemple, N

lui-même franchit le test pour les témoins premiers entre 2 et 31 mais n’est pas lui-même premier…

au demeurant on sait que les nombres pseudo-premiers forts sont beaucoup plus rares que les nombres

pseudo-premiers eux-mêmes beaucoup plus rares que les nombres premiers.

Écrivons donc une fonction estprem à partir de ces remarques.

La boucle While permet de positionner n dans la liste l. L’indice i obtenu est tel que

soit n < l[1] avec i = 1 (faire par exemple tourner la boucle avec n = 2000) ;

Page 17: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

Pseudo-primalité 113

© T³ France 2010 / Photocopie autorisée

soit l[i–1] n < l[i] (faire par exemple tourner la boucle avec 10000 ou 10000000) ;

soit n est supérieur ou égal à la dernière valeur soit i = 11.

En fonction de la position, on exécute les tests de pseudo-primalité forte qui correspondent.

Les résultats sont relativement rapides, même pour des nombres très grands11

...

Le dernier nombre testé, un nombre de Mersenne, possède 386 chiffres, et la réponse est donnée en

une poignée de secondes à l’ordinateur12

. Au demeurant, on est sûr que ce nombre est premier ou

pseudo-premier fort pour toutes les bases considérées dans le test.

2.5 Vers un test de primalité probabiliste (dit de Miller-Rabin)

Miller a démontré le théorème suivant, qui porte aujourd’hui son nom :

Soit n un nombre impair et composé, alors il ne peut passer avec succès qu’au plus n/4 des

tests de primalité forte pour des bases b telles que 2 b n –1.

Autrement dit, si on lui fait passer un test de primalité forte, avec une base convenablement choisie, il

a une chance sur 4 de le passer avec succès : il a donc une chance sur quatre qu’on le prenne pour un

nombre premier alors qu’il est composé.

Si maintenant il passe avec succès le test pour une autre base, on a le même résultat. Comme les

événements sont indépendants, sur l’ensemble des deux tests, il aura une probabilité de 1

16 d’être pris

pour un premier alors qu’il est composé. Sur l’ensemble de k tests, la probabilité passe à 1

4k ; elle

diminue assez vite comme le montre l’écran suivant :

11 Jusqu’à 28 chiffres, on est sûr du résultat obtenu... Pour un nombre de 28 chiffres, la méthode des divisions successives demanderait

jusqu’à la racine carrée du nombre environ 0,5 1014 divisions soit, à raison de 30 ou 40 divisions à la seconde pour une Voyage 200,

quelque 1012 secondes... disons plus de 30 000 années !

12 Aussi vite qu’avec isprime.

Page 18: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

114 Mathématiques et TI-Nspire

© T³ France 2010 / Photocopie autorisée

En pratique, on procède ainsi : soit n un nombre à tester, on choisit aléatoirement k bases de tests,

chacune comprise entre 1 et n – 1. Si n passe tous les tests, alors il y a moins d’une chance sur 4k pour

que n soit en fait composé. On peut donc annoncer qu’il est premier avec une probabilité de 1 – 1

4k, qui

devient vite très grande !

Enfin voici le programme pour tester si un entier naturel n est premier, en utilisant k bases choisies au

hasard :

Quelques précautions sont prises, en particulier au niveau du choix du nombre au hasard : pas de

problème si n ne dépasse pas 1012

, le choix est bien fait avec randint(2,n–1) ; sinon on plafonne le

maximum à 1012

car la fonction randint ne fonctionne plus avec des valeurs trop grandes.

On dispose ainsi d’un test de primalité probabiliste, et l’on peut augmenter autant que l’on veut la

probabilité qu’un nombre soit premier : ce qui de prime abord peut paraître étonnant, car en

arithmétique, le fait qu’un nombre soit premier ou pas ne relève pas du hasard…

Page 19: Chapitre 7. Chapitre Pseudo-primalité - Univers TI-Nspire · Christian Vassard (IUFM Rouen) 7 Chapitre Nous poursuivons l’investigation autour de la réciproque du théorème de

Pseudo-primalité 115

© T³ France 2010 / Photocopie autorisée

Au demeurant, le principe du test de Miller Rabin est très efficace quand il s’agit de produire de très

grands nombres « très probablement » premiers, notamment pour les besoins de la cryptographie.

Ainsi par exemple, le nombre 7331

+ 1644, qui possède 280 chiffres, est premier avec une probabilité

de 32

11

4 , soit quasiment 1… comme le montrent les écrans suivants :

Alors, premier ou pas ?