Aller au contenu principal
Terminale

Nombres premiers et petit théorème de Fermat — Exercices d'application

1. Nombres premiers

↩ Revoir le cours

Exercice 1 — ⭐

  1. Les nombres 221221, 223223 et 1 0011\,001 sont-ils premiers ? Justifie.
  2. Quels nombres premiers suffit-il de tester pour savoir si un entier inférieur à 1 0001\,000 est premier ?
  3. Modifie la fonction crible du cours pour qu’elle renvoie le nombre de nombres premiers inférieurs ou égaux à NN. Combien y en a-t-il jusqu’à 1 0001\,000 ?
Voir le corrigé
  1. 221=13×17221 = 13 \times 17 : non. 223223 : 223≈14,9\sqrt{223} \approx 14{,}9 ; ni 22, 33, 55, 77, 1111, 1313 ne le divisent : premier. 1 001=7×11×131\,001 = 7 \times 11 \times 13 : non.
  2. Les nombres premiers inférieurs à 1 000≈31,6\sqrt{1\,000} \approx 31{,}6 : 22, 33, 55, 77, 1111, 1313, 1717, 1919, 2323, 2929, 3131.
  3. return len([n for n in range(N + 1) if est_premier[n]]) ; on obtient 168168 nombres premiers jusqu’à 1 0001\,000.

2. Une infinité de nombres premiers

↩ Revoir le cours

Exercice 2 — ⭐⭐

  1. Calcule 2×3×5+12 \times 3 \times 5 + 1 et 2×3×5×7+12 \times 3 \times 5 \times 7 + 1. Ces nombres sont-ils premiers ?
  2. Soit n⩾2n \geqslant 2. Montre que n!+1n! + 1 n’a aucun diviseur premier inférieur ou égal à nn. En déduire une autre démonstration du fait qu’il existe des nombres premiers aussi grands qu’on veut.
  3. Montre que les 99 entiers consécutifs 10!+210! + 2, 10!+310! + 3, …, 10!+1010! + 10 ne sont pas premiers. Que peut-on en déduire sur les « trous » entre nombres premiers ?
Voir le corrigé
  1. 3131 et 211211 : tous deux premiers (on vérifie qu’aucun premier ⩽211≈14,5\leqslant \sqrt{211} \approx 14{,}5 ne divise 211211).
  2. Si p⩽np \leqslant n est premier, pp divise n!n! ; s’il divisait n!+1n! + 1, il diviserait 11. Donc tout diviseur premier de n!+1n! + 1 (il en existe, car n!+1⩾2n! + 1 \geqslant 2) est strictement supérieur à nn. Pour tout nn, il existe donc un nombre premier >n> n.
  3. Pour 2⩽k⩽102 \leqslant k \leqslant 10, kk divise 10!10! donc divise 10!+k10! + k, et 10!+k>k10! + k > k : ces entiers ne sont pas premiers. On peut ainsi construire des suites aussi longues qu’on veut d’entiers consécutifs non premiers : les écarts entre nombres premiers consécutifs peuvent être arbitrairement grands.

3. Décomposition en produit de facteurs premiers

↩ Revoir le cours

Exercice 3 — ⭐⭐

  1. Décompose 1 5401\,540 et 2 0022\,002 en produits de facteurs premiers.
  2. En déduire leur PGCD et le nombre de diviseurs positifs de 1 5401\,540.
  3. Quel est le plus petit entier naturel par lequel il faut multiplier 1 5401\,540 pour obtenir un carré parfait ?
Voir le corrigé
  1. 1 540=22×5×7×111\,540 = 2^2 \times 5 \times 7 \times 11 ; 2 002=2×7×11×132\,002 = 2 \times 7 \times 11 \times 13.
  2. PGCD=2×7×11=154\text{PGCD} = 2 \times 7 \times 11 = 154. Nombre de diviseurs de 1 5401\,540 : (2+1)(1+1)(1+1)(1+1)=24(2 + 1)(1 + 1)(1 + 1)(1 + 1) = 24.
  3. Dans un carré, tous les exposants sont pairs : il faut multiplier par 5×7×11=3855 \times 7 \times 11 = 385 (1 540×385=592 900=77021\,540 \times 385 = 592\,900 = 770^2).

Exercice 4 — ⭐⭐⭐

  1. Montre, à l’aide du lemme d’Euclide, que si un nombre premier pp divise a2a^2, alors pp divise aa.
  2. En déduire que 2\sqrt 2 est irrationnel : on suppose 2=ab\sqrt 2 = \dfrac ab avec aa et bb premiers entre eux, et on montre que 22 divise aa puis bb.
  3. Détermine les entiers naturels nn ayant exactement 33 diviseurs positifs.
Voir le corrigé
  1. p∣a×ap \mid a \times a : par le lemme d’Euclide, p∣ap \mid a ou p∣ap \mid a, donc p∣ap \mid a.
  2. 2=ab\sqrt 2 = \dfrac ab donne a2=2b2a^2 = 2b^2 : 2∣a22 \mid a^2 donc 2∣a2 \mid a (question 1). Écrivons a=2a′a = 2a' : 4a′2=2b24a'^2 = 2b^2, b2=2a′2b^2 = 2a'^2, donc 2∣b2 \mid b. 22 divise aa et bb, qui sont premiers entre eux : contradiction. 2\sqrt 2 est irrationnel.
  3. Si n=p1α1…pkαkn = p_1^{\alpha_1} \dots p_k^{\alpha_k}, le nombre de diviseurs est (α1+1)…(αk+1)=3(\alpha_1 + 1) \dots (\alpha_k + 1) = 3. 33 est premier, donc k=1k = 1 et α1=2\alpha_1 = 2 : n=p2n = p^2 avec pp premier (44, 99, 2525, 4949…).

4. Petit théorème de Fermat

↩ Revoir le cours

Exercice 5 — ⭐⭐

  1. En utilisant le petit théorème de Fermat, détermine le reste de 31003^{100} dans la division par 77, puis par 1111.
  2. Montre que pour tout entier nn, n13−nn^{13} - n est divisible par 1313.
  3. Démontre que pour tout entier nn, n5−nn^5 - n est divisible par 3030 (on appliquera Fermat avec p=5p = 5, puis on montrera la divisibilité par 22 et 33).
Voir le corrigé
  1. Modulo 77 : 36≡13^6 \equiv 1 ; 100=6×16+4100 = 6 \times 16 + 4 ; 3100≡34=81≡4 [7]3^{100} \equiv 3^4 = 81 \equiv 4\ [7]. Modulo 1111 : 310≡13^{10} \equiv 1 ; 100=10×10100 = 10 \times 10 ; 3100≡1 [11]3^{100} \equiv 1\ [11].
  2. 1313 est premier : n13≡n [13]n^{13} \equiv n\ [13], donc 13∣n13−n13 \mid n^{13} - n.
  3. Fermat avec p=5p = 5 : 5∣n5−n5 \mid n^5 - n. n5−n=n(n−1)(n+1)(n2+1)n^5 - n = n(n - 1)(n + 1)(n^2 + 1) contient le produit de trois entiers consécutifs (n−1)n(n+1)(n - 1)n(n + 1), divisible par 22 et par 33. 22, 33, 55 sont premiers entre eux deux à deux : 30∣n5−n30 \mid n^5 - n.

Exercice 6 — ⭐⭐⭐

Test de Fermat.

  1. Calcule 2902^{90} modulo 9191 avec Python (pow(2, 90, 91)). Que peut-on en conclure sur 9191 ?
  2. Vérifie que 390≡1 [91]3^{90} \equiv 1\ [91]. Ce résultat prouve-t-il que 9191 est premier ?
  3. Écris une fonction temoin_fermat(n) qui renvoie le plus petit entier a⩾2a \geqslant 2 tel que an−1≢1 [n]a^{n-1} \not\equiv 1\ [n], ou None s’il n’y en a pas parmi les aa premiers avec nn.
Voir le corrigé
  1. pow(2, 90, 91) vaut 64≠164 \neq 1 : si 9191 était premier, on aurait 290≡1 [91]2^{90} \equiv 1\ [91]. Donc 9191 n’est pas premier (91=7×1391 = 7 \times 13).
  2. pow(3, 90, 91) vaut bien 11, mais cela ne prouve rien : le test de Fermat peut seulement démontrer qu’un nombre n’est pas premier.
  3. from math import gcd
    
    def temoin_fermat(n):
        for a in range(2, n):
            if gcd(a, n) == 1 and pow(a, n - 1, n) != 1:
                return a
        return None
    
    print(temoin_fermat(91), temoin_fermat(561))   # 2 None

Exercice 7 — ⭐⭐⭐⭐

Un RSA miniature. On choisit p=5p = 5, q=11q = 11, n=pq=55n = pq = 55 et e=3e = 3 (clé publique). Un message est un entier MM de 00 à 5454 ; son chiffré est le reste CC de MeM^e modulo 5555.

  1. Chiffre le message M=7M = 7.
  2. On pose φ=(p−1)(q−1)=40\varphi = (p - 1)(q - 1) = 40. Trouve dd tel que 3d≡1 [40]3d \equiv 1\ [40] (clé privée).
  3. On admet que Cd≡M [55]C^d \equiv M\ [55]. Déchiffre CC obtenu à la question 1 avec Python.
  4. Pourquoi la sécurité repose-t-elle sur la difficulté à décomposer nn en facteurs premiers ?
Voir le corrigé
  1. 73=343=55×6+137^3 = 343 = 55 \times 6 + 13 : C=13C = 13.
  2. 3×27=81=2×40+13 \times 27 = 81 = 2 \times 40 + 1 : d=27d = 27.
  3. pow(13, 27, 55) renvoie 77 : on retrouve le message.
  4. Connaître pp et qq permet de calculer φ\varphi, puis dd. Pour de très grands nn (plusieurs centaines de chiffres), on ne sait pas retrouver pp et qq en un temps raisonnable : dd reste secret même si nn et ee sont publics.