Votre navigateur n'accepte pas le Javascript.La navigation sur ce site risque de ne pas fonctionner correctement.

371. Le test de Miller

Il s’agit d’un test de calcul modulaire qui permet de démontrer, sans effectuer de divisions successives, qu’un nombre donné n’est pas premier.

Démontrez un lemme

Pour tout entier naturel $n$ supérieur ou égal à $2$ vous notez $\mathscr{P}(n)$ la propriété « il existe un entier naturel $t$ et un entier naturel impair $q$ tels que $n = 2^t q$ ».

Initialisation. Pour $n=2$, vous posez $t = 1$ et $q=1.$ Vous avez bien $2^t q = 2^1 \times 1 = 2 = n.$ Donc $\mathscr{P}(2)$ est vraie.

Hérédité. Soit $n$ un entier supérieur ou égal à $2.$ Supposez que $\mathscr{P}(2),\dots, \mathscr{P}(n)$ sont vraies.

Notez déjà que $n+1\geq 3.$ Si $n+1$ est impair, alors vous posez $t = 0$ et $q = n+1.$ Vous avez immédiatement $2^t q = 2^0 \times (n+1) = n+1.$

Si $n+1$ est pair, il s’ensuit que $n+1\geq 4.$ Alors $m = \frac{n+1}{2}$ est un entier supérieur ou égal à $2.$

Comme $n\geq 1$ il vient $2n \geq n+1$ et donc $\frac{n+1}{2}\leq n.$

Comme $m\in\llbracket 2, n\rrbracket$ vous appliquez l’hypothèse de récurrence. Il existe un entier naturel $t’$ et un entier naturel impair $q$ tels que $m = 2^{t’} q.$ Du coup $2m = 2^{1+t’}q$ ce qui s’écrit $n+1 = 2^{1+t’} q.$ En posant $t = 1+t’$ vous constatez que $t\in\N$ et vous avez bien $n+1 = 2^t q.$

Donc $\mathscr{P}(n+1)$ est vraie.

Conclusion. Par récurrence forte, il a été démontré que :

\boxed{\forall n\in\N, n\geq 2\implies (\exists t \in\N, \exists q\in\N, n = 2^tq\text{ et }q\text{ est impair}).}

Soient $t, q, u, r$ quatre entiers naturels avec $2^t q = 2^u r$ et $q$ et $r$ impairs.

Si $t> u$ alors $t\geq u+1.$ Vous avez $2^{t-u} q = r.$ Or, $t-u \geq 1$ donc $2^{t-u}q$ est pair. Or $r$ est impair, contradiction.

Si $u> t$ alors $u\geq t+1.$ Vous avez $q = 2^{u-t} r.$ Or, $u-t \geq 1$ donc $2^{u-t}r$ est pair. Or $q$ est impair, contradiction.

Du coup, $u=t.$ Ainsi $2^t q = 2^t r$ et $q=r.$

En définitive l’unicité est démontrée.

\boxed{\forall n\in\N, n\geq 2\implies (\exists! t \in\N, \exists !q\in\N, n = 2^tq\text{ et }q\text{ est impair}).}

Descriptif du test de Miller en base $b$

Soit $b$ un nombre entier supérieur ou égal à $2$ appelé base.

Soit $n$ un entier naturel impair. D’après le lemme, il existe un unique entier naturel $t$ et un unique entier naturel impair $q$ tels que $n-1 = 2^t q.$ Notez que $t=0$ entraîne $n-1 =q$ et $n-1$ serait impair donc $n$ serait pair ce qui est absurde, donc $t \geq 1.$

Vous direz que $n$ passe le test de Miller en base $b$, si et seulement si :

\boxed{(b^q\equiv 1 \mod n) \text{ ou } (\exists s\in\llbracket 0, t-1\rrbracket, b^{2^s q}\equiv -1 \mod n).}

Note. Un nombre entier supérieur ou égal à $2$ qui passe le test de Miller en base $b$ peut ne pas être premier. Dans ce dernier cas précis, il est qualifié de nombre pseudo-premier fort en base $b.$

L’intérêt du test de Miller réside dans le théorème ci-dessous.

Tout nombre premier $p$ impair passe le test de Miller en base $b$ dès que $b$ n’est pas multiple de $p$

Soit $b$ un nombre entier supérieur ou égal à $2$ appelé base.

Soit $p$ un nombre premier impair tel que $b$ ne soit pas un multiple de $p.$

Comme $p-1$ est pair, il existe un unique entier naturel $t$ et un unique entier impair $q$ tels que $p-1 = 2^t q.$

S’il existe $s\in\llbracket 0, t-1\rrbracket, b^{2^s q}\equiv -1 \mod p$ alors $p$ passe le test de Miller en base $b.$

Si un tel entier $s$ n’existe pas, cela signifie ce qui suit :

\forall s\in\llbracket 0, t-1\rrbracket, b^{2^sq}\not\equiv -1 \mod p.

Pour tout entier naturel $u$ vous notez $\mathscr{P}(u)$ la propriété « $b^{2^u q} \equiv 1 \mod p$. » Vous procédez par récurrence descendante.

Initialisation. Pour $u = t$ vous cherchez à évaluer $b^{2^uq} = b^{2^tq} = b^{p-1}.$ Comme $PGCD(b,p)$ divise $p$, ce nombre vaut $1$ ou $p$ car $p$ est premier. Si $PGCD(b,p)=p$ alors $p$ divise $b$ ce qui est absurde. Donc $PGCD(b,p)=1.$ L’application du petit théorème de Fermat fournit $b^{p-1} \equiv 1\mod p$ ce qui prouve que $\mathscr{P}(t)$ est vraie.

Caractère descendant. Soit $u$ un nombre entier appartenant à l’intervalle $\llbracket 1, t \rrbracket.$ Supposez $\mathscr{P}(u)$ vraie.

Alors $b^{2^u q} \equiv 1 \mod p.$ Vous en déduisez que :

\begin{align*}
\left(b^{2^{u-1} q}\right)^2 \equiv 1 \mod p\\
\left(b^{2^{u-1} q}\right)^2 -1^2 \equiv 0 \mod p\\
\left(b^{2^{u-1} q}-1\right)\left(b^{2^{u-1} q}+1\right) \equiv 0 \mod p.
\end{align*}

Donc $p$ divise le produit $\left(b^{2^{u-1} q}-1\right)\left(b^{2^{u-1} q}+1\right).$

Cependant, notez que $u-1\in\llbracket 0, t-1\rrbracket$ donc $b^{2^{u-1}q}\not\equiv -1 \mod p$ donc $p$ ne divise pas $b^{2^{u-1} q}+1.$

Utilisant le lemme d’Euclide, vous déduisez que $p$ divise $b^{2^{u-1} q}-1$ et donc $b^{2^{u-1} q}\equiv 1 \mod p.$

La propriété $\mathscr{P}(u-1)$ est vraie.

Conclusion. Il a été démontré par récurrence descendante que $\mathscr{P}(0)$ est vraie, autrement dit $b^{2^0 q} \equiv 1 \mod n$ ce qui fournit $b^{ q} \equiv 1 \mod p.$

Ainsi $p$ passe le test de Miller en base $b.$

Application : démontrez que $1387$ n’est pas un nombre premier

Tout nombre premier $p$ passe le test de Miller en base $b$ dès que $PGCD(b,p)=1.$

Par contraposée, si $n$ est un nombre entier supérieur ou égal à $2$ de sorte que :

  • il existe une base $b$ vérifiant $PGCD(b,n)=1$
  • le nombre $n$ ne passe pas le test de Miller en base $b$

alors $n$ n’est pas premier.

Note. En pratique la base $b$ est choisie pour être strictement inférieure à $n$. S’il s’avère que $PGCD(b,n)\geq 2$ alors ce nombre est déjà un diviseur de $n$ compris entre $2$ et $n-1.$ Il est inutile de pratiquer le test de Miller puisque $n$ est déjà non premier.

Pour le nombre $n = 1387$ vous choisissez $b=2$ pour base. Comme $1387$ est impair, $PGCD(n,b)=1.$ Vous appliquez le test de Miller à $1387$ en base $2.$

Tout d’abord :

\begin{align*}
n-1 &= 1386\\
&= 2\times 693.
\end{align*} 

Par conséquent $t = 1$ et $q = 693.$

Vous évaluez $2^{693} \mod 1387.$

D’une part :

\begin{align*}
2^{10}&\equiv 1024 \mod 1387\\
2^{20}&\equiv 1024^2 \mod 1387\\
2^{20}&\equiv 1048576 \mod 1387\\
2^{20}&\equiv 756\times 1387+ 4 \mod 1387\\
2^{20}&\equiv  2^2 \mod 1387.
\end{align*} 

Comme $PGCD(2, 1387)=1$ vous pouvez simplifier la congruence deux fois par $2$ grâce au théorème de Gauss, ce qui fournit :

\boxed{2^{18}\equiv 1\mod 1387.}

D’autre part, vous effectuez la division euclidienne de $693$ par $18$ ce qui fournit :

693 = 18\times 38 + 9.

Du coup :

\begin{align*}
2^{693} &\equiv 2^9 \times (2^{18})^{38} \mod 1387\\
&\equiv 512\mod 1387.
\end{align*} 

Comme $2^{693}$ n’est ni congru à $1$ ni congru à $-1$ modulo $1387$, $1387$ ne passe pas le test de Miller en base $2$ donc $1387$ n’est pas premier.

Application : démontrez que le nombre $1\,373\,653$ n’est pas premier

Il s’agit de déterminer $t$ et $q.$

Vous notez $n = 1373653$ et par suite :

\begin{align*}
n-1 &= 1\,373\,652 \\
&= 2\times 686\,826\\
&= 4\times 343\,413.
\end{align*}

Vous choisissez $b=5$ pour base et allez effectuer le calcul de $5^{343\,413}$ modulo $1\,373\,653.$ Pour plus de lisibilité, les congruences qui suivent sont toutes effectuées modulo $1\,373\,653.$

\begin{align*}
5^2 &= 25\\
5^4 &= 25^2 =625 \\
5^8 &= 625^2 = 360\,425+024\,200+006\,000 = 360\,425+30\,200 =390\,625\\
5^{16} &\equiv 390\,625^2 \equiv 152\,587\,890\,625 \equiv 1\,373\,653\times 111\,081 + 1\,141\,732\\
5^{16} &\equiv 1\,141\,732\\
5^{32} &\equiv 1\,141\,732^2 \equiv 1\,303\,551\,959\,824 \equiv 948\,967\times 1\,373\,653+593\,373\\
5^{32} &\equiv 593\,373\\
5^{64} &\equiv 593\,373^2 \equiv  352\,091\,517\,129 \equiv 256\,317\times 1\,373\,653+901\,128\\
5^{64} &\equiv 901\,128\\
5^{128} &\equiv 901\,128^2   \equiv 812\,031\,672\,384 \equiv 591\,147\times 1\,373\,653+822\,393\\
5^{128} &\equiv 822\,393
\end{align*}
\begin{align*}
5^{256} &\equiv 822\,393^2   \equiv 676\,330\,246\,449 \equiv 492\, 358\times 1\,373\,653 + 1\,202\,675\\
5^{256} &\equiv 1\,202\,675\\
5^{512} &\equiv 1\,202\,675^2   \equiv 1\,446\,427\,155\,625 \equiv 1\,052\,978\times 1\,373\,653+ 766\,991\\
5^{512} &\equiv 766\,991\\
5^{1024} &\equiv 766\,991^2   \equiv 588\,275\,194\,081 \equiv 428\,256\times 1\,373\,653+ 54\,913\\
5^{1024} &\equiv 54\,913\\
5^{2048} &\equiv 54\,913^2   \equiv 3\,015\,437\,569 \equiv 2\,195\times 1\,373\,653+ 269\,234\\
5^{2048} &\equiv 269\,234\\
5^{4096} &\equiv 269\,234^2   \equiv 72\,486\,946\,756 \equiv 52\,769\times 1\,373\,653+ 651\,599\\
5^{4096} &\equiv 651\,599
\end{align*}
\begin{align*}
5^{8192} &\equiv 651\,599^2   \equiv 424\,581\,256\,801 \equiv 309\,089\times 1\,373\,653 + 224\,684\\
5^{8192} &\equiv 224\,684\\
5^{16384} &\equiv 224\,684^2   \equiv 50\,482\,899\,856 \equiv 36\,750\times 1\,373\,653 + 1\,152\,106\\
5^{16384} &\equiv 1\,152\,106\\
5^{32768} &\equiv 1\,152\,106^2   \equiv 1\,327\,348\,235\,236 \equiv 966\,290\times 1\,373\,653 + 1\,077\,866\\
5^{32768} &\equiv 1\,077\,866\\
5^{65536} &\equiv 1\,077\,866^2   \equiv 1\,161\,795\,113\,956 \equiv 845\,770\times 1\,373\,653 + 616\,146\\
5^{65536} &\equiv 616\,146\\
5^{131072} &\equiv 616\,146^2   \equiv 379\,635\,893\,316 \equiv 276\,369\times 1\,373\,653 + 787\,359\\
5^{131072} &\equiv 787\,359\\
\end{align*}
\begin{align*}
5^{262144} &\equiv 787\,359^2   \equiv 619\,934\,194\,881 \equiv 451\,303\times 1\,373\,653 + 475\,022\\
5^{262144} &\equiv 475\,022.
\end{align*}

Vous décomposez $343\,413$ comme une somme de puissances de $2$ à l’aide de soustractions.

\begin{align*}
343\,413 -262\,144 &= 81\,269\\
81\,269 - 65\,536&=15\,733\\
15\,733 - 8\,192 &=7\,541\\
7\,541 - 4\,096 &= 3\,445\\
3\,445- 2\,048 &=1\,397\\
1\,397-1\,024 &= 373\\
373 - 256 &= 117\\
117-64 &= 53\\
53 - 32 &= 21\\
21- 16 &= 5\\
5- 4 &=1.
\end{align*} 

Cela montre que :

\begin{align*}
343\,413 &= 262\,144+65\,536+8\,192\\
&\quad+4\,096+2\,048+1\,024\\
&\quad+256+64+32\\
&\quad+16+4+1.
\end{align*} 

Vous calculez les puissances suivantes :

\begin{align*}
5^{262\,144}\times 5^{65\,536}\times 5^{8\,192} &\equiv 475\,022\times 616\,146 \times 224\,684\\
&\equiv 65\,761\,165\,874\,653\,008\\
&\equiv 47\,873\,200\,782\times 1\,373\,653 + 856\,362\\
&\equiv 856\,362
\end{align*}
\begin{align*}
5^{4\,096}\times 5^{2\,048}\times 5^{1\,024} &\equiv 651\,599\times 269\,234 \times 54\,913\\
&\equiv 9\,633\,530\,647\,480\,558\\
&\equiv 7\,013\,074\,369\times 1\,373\,653 + 1\,280\,601\\
&\equiv 1\,280\,601
\end{align*}
\begin{align*}
5^{256}\times 5^{64}\times 5^{32} &\equiv 1\,202\,675\times 901\,128 \times 593\,373\\
&\equiv 643\,076\,365\,633\,990\,200\\
&\equiv 468\,150\,519\,551\times 1\,373\,653 + 1\,200\,397\\
&\equiv 1\,200\,397
\end{align*}
\begin{align*}
5^{16}\times 5^{4}\times 5^{1} &\equiv 1\,141\,732 \times 625 \times 5\\
&\equiv 3\,567\,912\,500\\
&\equiv 2\,597\times 1\,373\,653 + 535\,659\\
&\equiv 535\,659.
\end{align*}

Puis :

\begin{align*}
5^{343\,413} &\equiv 856\,362\times 1\,280\,601 \times 1\,200\,397 \times 535\,659\\
&\equiv 705\,154\,906\,313\,747\,945\,181\,126\\
&\equiv 513\,342\,821\,159\,163\,154 \times 1\,373\,653 +1\,199\,564\\
&\equiv 1\,199\,564.
\end{align*} 

Vous calculez $5^{686\,826}$ comme suit :

\begin{align*}
5^{686\,826} &\equiv 5^{343\,413\times 2}\\
 &\equiv (5^{343\,413})^2\\
&\equiv 1\,199\,564^2\\
&\equiv 1\,438\,953\,790\,096\\
&\equiv 1\,047\,538\times 1\,373\,653+73\,782\\
&\equiv 73\,782.
\end{align*} 

Il a été démontré que :

\left\{\begin{align*}
5^{343\,413}&\not\equiv 1\\
5^{343\,413}&\not\equiv -1\\
5^{686\,826}&\not\equiv -1.
\end{align*} \right.

Cela prouve que le nombre $1\,373\,653$ ne passe pas le test de Miller en base $5.$ Ainsi $1\,373\,653$ n’est pas un nombre premier.

Prolongements

Première partie

Soit $n$ un nombre entier impair supérieur ou égal à $3$ et strictement inférieur à $2\,047.$

Démontrez que $n$ est premier, si et seulement si, il passe le test de Miller en base $2.$

Deuxième partie

Soit $n$ un nombre entier impair supérieur ou égal à $3$ et strictement inférieur à $10\,000.$

Démontrez que $n$ est premier, si et seulement si, il passe le test de Miller en base $2$ et s’il n’appartient pas à l’ensemble $A$ suivant :

A=\{2\,047, 3\,277, 4\,033, 4\,681, 8\,321\}.

Troisième partie

Soit $n$ un nombre entier impair ou égal à $3$ et strictement inférieur à $1\,373\,653.$

Démontrez que $n$ est premier, si et seulement si, il passe le test de Miller en base $2$ et en base $3.$

Partagez maintenant !

Aidez vos amis à découvrir cet article et à mieux comprendre le sujet.

Aidez-moi sur Facebook !

Vous appréciez cet article et souhaitez témoigner du temps que j'y ai passé pour le mettre en œuvre. C'est rapide à faire pour vous et c'est important pour moi, déposez un j'aime sur ma page Facebook. Je vous en remercie par avance.

Lisez d'autres articles !

Parcourez tous les articles qui ont été rédigés. Vous en trouverez sûrement un qui vous plaira !