Académique Documents
Professionnel Documents
Culture Documents
Nombres premiers
Un entier naturel est premier s’il admet exactement deux diviseurs : 1 et lui-même.
Un entier distinct de 1, non premier, est dit composé.
A titre d’exemple
Recherche
1. Montrer que le nombre f (n) = n2 + 18n + 77 n’est premier pour aucune valeur de l’entier naturel n.
On pourra factoriser f (n)...
2. Critère d’arrêt
Propriété 1
⊛ Tout entier naturel n supérieur ou égal à 2 admet au moins un diviseur premier ; le plus petit diviseur premier
de n est son plus petit diviseur après 1.
Démonstration
⊛ Si n n’est pas premier, alors l’ensemble des diviseurs de n supérieurs ou égaux à 2 n’est pas vide. Tout ensemble
non vide d’entiers admet un plus petit élément. Soit p cet élément.
Raisonnons par l’absurde.
Si p n’est pas premier, alors p admettrait un diviseur d, tel que 2 ≤ d ≤ p. Alors d serait un diviseur de n plus
petit que p. L’hypothèse est donc absurde.
p est donc un nombre premier.
⊛ Pour tout entier naturel composé n supérieur ou égal à 2, il existe un plus petit diviseur entier p premier supérieur
ou égal à 2, tel que n = p × q, avec p ≤ q.
2≤ p ≤ q
Ainsi p2 ≤ pq
Comme pq = n, p2 ≤ n √
En prenant la racine carrée, p ≤ n
Recherche
Algorithme et Python 1
from math i m p o r t ∗
def p l u s _ p e t i t _ d i v i s e u r _ p r e m i e r ( n) :
La fonction suivante renvoie le plus r=i n t ( f l o o r ( s q r t ( n ) ) )
petit diviseur premier d’un entier d=2
n ⩾ 2, en utilisant le principe du w h i l e n%d !=0 and d<=r :
critère d’arrêt. d+=1
Si elle renvoie n, l’entier n est pre- i f d<=r :
mier. return . . .
Compléter les pointillés. else :
return . . .
La fonction ci-dessous renvoie la liste des nombres premiers inférieurs ou égaux à un entier n ⩾ 2. La compléter.
La dernière ligne doit être sur la même ligne que l’avant-dernière ; il y a eu un saut pour des raisons de place.
from math i m p o r t ∗
def liste_nb_premiers_inferieurs_ou_egaux_a_ ( n) :
r e t u r n [ p l u s _ p e t i t _ d i v i s e u r _ p r e m i e r ( i ) f o r i i n r a n g e ( 2 , n+1)
i f plus_petit_diviseur_premier ( i )==...]
Pour un nombre réel positif x, le nombre de nombres premiers inférieurs ou égaux à x est noté π(x).
Le programme suivant représente graphiquement la fonction π :
i m p o r t numpy a s np
import m a t p l o t l i b . pyplot as p l t
def f o n c t i o n _ p i ( n) :
l =[0 ,0]
f o r i i n r a n g e ( 2 , n+1) :
i f p l u s _ p e t i t _ d i v i s e u r _ p r e m i e r ( i )< i :
l . append ( l [ i −1])
else :
l . append ( l [ i −1]+1)
return l
def graphique_fonction_pi ( n) :
p l t . s c a t t e r ( [ i f o r i i n range ( n +1)] , f o n c t i o n _ p i ( n ))
p l t . s c a t t e r ( [ i f o r i in range (2 , n +1)] ,[ i / log ( i )
f o r i i n r a n g e ( 2 , n + 1 ) ] ) #s u r l a même l i g n e qu ’ au−d e s s u s
p l t . show ( )
Voici le graphique obtenu en exécutant dans la console : >>> g r a p h i q u e _ f o n c t i o n _ p i ( 1 0 0 0 0 0 )
Démonstration
Or p1 × p2 × p3 . . . . . . × pn ≡0 mod (pi0 ).
Ainsi p1 × p2 × p3 . . . . . . × pn + 1 ≡ 1 mod (pi0 ).
D’où : N ≡1 mod (pi0 ).
Il est absurde d’avoir N ≡ 0 mod (pi0 ) et N ≡ 1 mod (pi0 ), donc il existe un nombre infini de nombres premiers.
4. Crible d’Ératosthène
Un peu d’histoire
Ératosthène est un astronome, géographe, philosophe et
mathématicien grec du IIIème siècle avant notre ère (né à
Cyrène, aujourd’hui Chahat en Libye vers -276 et mort à
Alexandrie vers -194).
Ératosthène fut nommé à la tête de la bibliothèque d’Alexan-
drie à la demande de Ptolémée III, pharaon d’Egypte, et fut
précepteur de son fils Ptolémée IV.
Il est célèbre pour être le premier dont la méthode de mesure
de la circonférence de la Terre soit connue. On a donné son
nom à l’astéroïde (3251) Ératosthène ainsi qu’au cratère
lunaire Ératosthène.
Mathématicien, il établit le crible d’Ératosthène qui permet
de déterminer par exclusion tous les nombres premiers et dont
on étudie ci-dessous le principe.
En guise d’explications
Le crible d’Ératosthène permet de déterminer les nombres premiers inférieurs à un entier N , en procédant ainsi :
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
101 102 103 104 105 106 107 108 109 110
111 112 113 114 115 116 117 118 119 120
Recherche
5. Nombres de Mersenne
Recherche
∀n ∈ N∗ , Mn = 2n − 1
1. Calculer les 6 premiers nombres de Mersenne.
Parmi ces nombres de Mersenne, si n est premier, que peut-on dire de Mn ?
On pourrait penser que si n est premier, alors Mn l’est également. Cela permettrait d’obtenir un nombre premier
aussi grand que l’on veut.
2. Calculer M11 . Ce nombre est-il premier ?
4. Démontrer que si n n’est pas premier, alors Mn ne l’est pas non plus.
Source : Wikipédia
En janvier 2016, 49 nombres premiers de Mersenne étaient connus, le plus grand étant M74207281 , qui est aussi à la
même date le plus grand nombre premier connu. Comme plusieurs de ses prédécesseurs, il a été découvert par un
calcul distribué sous l’égide du projet GIMPS, Great Internet Mersenne Prime Search (qui signifie « grande recherche
par Internet de nombres premiers de Mersenne »).
a) Ecrire l’initialisation.
b) Hérédité : on suppose qu’il existe un entier a entre 1 et p − 2, pour lequel ap−1 ≡ 1 [p].
Montrer que (a + 1)p ≡ a + 1 [p].
On utilisera la formule du binôme de Newton, et le résultat de l’exercice 7.
c) Justifier que a + 1 est inversible modulo p.
d) Etablir alors que (a + 1)p−1 ≡ 1 [p], ce qui achève la démonstration de l’hérédité.
En guise d’explications
• Si a n’est pas un multiple du nombre premier p, on vient de démontrer que ap−1 ≡ 1 [p], donc, en
multipliant par a des deux côtés, on trouve : ap ≡ a [p].
Exercice 9 :
1. Vérifier que 761 est un nombre premier.
2. L’entier n est un entier naturel composé de 760 chiffres tous égaux à 9 : n = 999
| {z. . . 99}.
760 fois
a) Calculer n + 1.
b) Montrer que 761 divise n.
a31 ≡ a [62] .
Un nombre premier divise un produit de facteurs si, et seulement si, il divise au moins l’un de ces facteurs.
p|ab
⇒ (p|a ou p|b)
p premier
A titre d’exemple 1
• 6 divise 9 × 4 mais 6 ne divise ni 9, ni 4. On veillera donc à bien appliquer le théorème pour les seuls nombres
premiers.
Propriété 5 ▶ Corollaire
Démonstration 1
Tout entier naturel au moins égal à 2 est premier ou est un produit de nombres premiers.
Tout entier naturel supérieur ou égal à 2 peut se décomposer de façon unique (à l’ordre des facteurs près) en produit
de facteurs premiers.
αm−1
n = pα1 × p2 × p3 × . . . . . . × pm−1 × pm
1 α2 α3 αm
Recherche
Exercice 13 : Voici une méthode pour décomposer 21 168 en produit de nombres premiers : on commence par essayer
de diviser par 2 ; tant que c’est possible, on essaie de diviser le quotient par 2.
Quand on ne peut plus diviser par 2, on essaie de diviser le quotient par 3, puis par 5 (nombre premier suivant), puis
par 7, . . ., jusqu’à ce que le quotient soit égale à 1.
• Division par 2 :
– 21 168 ÷ 2 = 10 584
– 10 584 ÷ 2 = 5 292
– 5 292 ÷ 2 = 2 646
– 2 646 ÷ 2 = 1 323
– 1 323 n’est pas divisible par 2.
• Division par 3 :
– 1 323 ÷ 3 = 441
– 441 ÷ 3 = 147
– 147 ÷ 3 = 49
– 49 n’est pas divisible par 3.
• Division par 7 :
– 49 ÷ 7 = 7
– 7÷7=1
– 1 n’est pas divisible par 7.
21 168 = 24 × 33 × 72
Exercice 14 : Décomposer, en utilisant cette méthode, en produit de facteurs premiers le nombre N = 150 920.
Algorithme et Python 2
def decomposition ( n) :
Le programme ci-contre effectue la décomposition en l =[]
facteurs premiers du nombre entier supérieur ou égal d=2
à 2 n. w h i l e n>1 :
Plus exactement, il renvoie une liste de couples [d, i], i =0
où d est un facteur premier de n et i la puissance de w h i l e n%d==0 :
d dans la décomposition. i +=...
n=...
i f i >0 :
l . append ( [ d , i ] )
d+=1
return l
>>> d e c o m p o s i t i o n ( 1 8 5 6 4 4 8 )
Par exemple : [ [ 2 , 6 ] , [ 3 , 2 ] , [ 1 1 , 1 ] , [ 2 9 3 , 1 ] ] On a : 1 856 448 = 26 ×32 ×11×293.
Cet algorithme utilise le principe utilisé dans la décomposition de 21 168 effectuée ci-dessus, à un détail près :
dans la décomposition effectuée ci-dessus, après avoir effectué toutes les divisions possibles par 3, on a regardé si le
quotient obtenu était divisible par le nombre premier suivant, 5.
Mais dans l’algorithme présenté ci-dessus, après avoir effectué toutes les divisions possibles par d = 3, d va prendre la
valeur 3 + 1 = 4, qui n’est pas un nombre premier.
Pourquoi cet algorithme n’affichera malgré ceci que des facteurs premiers ?
Soit un nombre entier n supérieur ou égal à 2 dont la décomposition en facteurs premiers est :
α
1 × p2 × p3 × . . . . . . × pm−1 × pm
n = pα 1 α2 α3 m−1 αm
avec 0 ≤ βi ≤ αi et i ∈ {1, 2, 3, · · · · · · }.
Le nombre de diviseurs de N est alors : (α1 + 1) × (α2 + 1) × . . . . . . (αm + 1) .
A titre d’exemple
0 1
0
Exemple : La décomposition en facteurs premiers de
21 168 est 24 × 33 × 72 .
1 1
D’après la première partie de la propriété ci-dessus,
tout diviseur de 21 168 se décompose sous la forme
2a × 3b × 7c , avec a, b et c des entiers vérifiant 0 ⩽ 2
a ⩽ 4, 0 ⩽ b ⩽ 3, 0 ⩽ c ⩽ 2. 0
Si on fixe a = 0, voici ci-contre un arbre décrivant les 0
possibilités pour b et c ;
il y a ainsi 4 × 3 = 12 diviseurs de cette forme, avec
2 1
a = 0.
Comme il y a 5 valeurs possibles pour a, on en déduit
que 21 168 a 5 × 4 × 3 = 60 diviseurs. 2
3 1
2
Valeur de b Valeur de c
Recherche
Décomposer le nombre 120 en facteurs premiers et en déduire le nombre de diviseurs de 120. Mêmes demandes avec
le nombre 847.
x(x + 1)(2x + 1) = 84 .
Exercice 16 : Un annuaire comportant 999 991 noms a entre 100 et 1 000 pages et plus de 1 000 noms par page. On
trouve le même nombre de noms sur toutes les pages.
Combien a-t-il de pages ?
Soient a et b deux nombres entiers supérieurs ou égaux à 2 dont la décomposition en facteurs premiers est :
α
1 × p2 × p3 × . . . . . . × pm−1 × pm , où 0 ≤ αi et i ∈ {1, 2, 3, · · · · · · }
a = pα 1 α2 α3 m−1 αm
β
b = pβ1 1 × pβ2 2 × pβ3 3 × . . . . . . × pm−1
m−1
× pβmm , où 0 ≤ βi et i ∈ {1, 2, 3, · · · · · · }
Alors :
min(α1 ;β1 ) min(α2 ;β2 ) min(α3 ;β3 ) min(αm−1 ;βm−1 )
PGCD(a; b) = p1 × p2 × p3 × . . . . . . × pm−1 × pmin(α
m
m ;βm )
A titre d’exemple
280 = 23 × 30 × 51 × 71 × 110
9900 = 22 × 32 × 52 × 70 × 111
Alors :
Partie Exercices
E = p1 × p 2 × · · · × pn + 1.
Démontrer que E est un entier supérieur ou égal à 2, et que E est premier avec chacun des nombres p1 , p2 , . . . , pn .
Partie B
Pour tout entier naturel k ⩾ 2, on pose Mk = 2k − 1.
On dit que Mk est le k-ième nombre de Mersenne.
k 2 3 4 5 6 7 8 9 10
Mk 3
b) D’après le tableau précédent, si k est un nombre premier, peut-on conjecturer que le nombre Mk est premier ?
2. Soient p et q deux entiers naturels non nuls.
q
2 3 q−1 (2p ) − 1
a) Justifier l’égalité : 1 + 2p + (2p ) + (2p ) + · · · + (2p ) = .
2p − 1
b) En déduire que 2pq − 1 est divisible par 2p − 1.
c) En déduire que si un entier k supérieur ou égal à 2 n’est pas premier, alors Mk ne l’est pas non plus.
3. a) Prouver que le nombre de Mersenne M11 n’est pas premier.
b) Que peut-on en déduire concernant la conjecture de la question 1. b. ?
p IX-2 Chap. IX
Partie C
Le test de Lucas-Lehmer permet de déterminer si un nombre de Mersenne donné est premier. Ce test utilise la suite numérique
(un ) définie par u0 = 4 et pour tout entier naturel n :
un+1 = u2n − 2.
Si n est un entier naturel supérieur ou égal à 2, le test permet d’affirmer que le nombre Mn est premier si et seulement si
un−2 ≡ 0 modulo Mn . Cette propriété est admise dans la suite.
1. Utiliser le test de Lucas-Lehmer pour vérifier que le nombre de Mersenne M 5 est premier
2. Soit n un entier naturel supérieur ou égal à 3.
L’algorithme suivant, qui est incomplet, doit permettre de vérifier si le nombre de Mersenne Mn est premier, en utilisant
le test de Lucas-Lehmer, pour un entier n ⩾ 3
u←4
M ← ......
Pour i allant de 1 à ……faire
u ← ......
Fin Pour
Si M divise u alors afficher « M ……… »
sinon afficher « M ……… »
1. Justifier, en énonçant un théorème, qu’il existe un couple d’entiers relatifs (u ; v) tel que 15u − 26v = 1.
Trouver un tel couple.
2. En déduire une solution particulière (x0 ; k0 ) de l’équation (E).
Partie B
On fait correspondre à chaque lettre de l’alphabet un nombre entier comme l’indique le tableau ci-dessous.
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
On définit un système de codage :
Ainsi, par cette méthode, la lettre E est associée à 4, 4 est transformé en 15 et 15 correspond à la lettre P et donc la lettre
E est codée par la lettre P.
7x − 3y = 1. (E)
1. Un algorithme incomplet est donné ci-dessous. Le recopier et le compléter, en écrivant ses lignes manquantes (1) et (2)
de manière à ce qu’il donne les solutions entières (x ; y) de l’équation (E) vérifiant −5 ⩽ x ⩽ 10 et −5 ⩽ y ⩽ 10. X et
Y désignent des nombres entiers.
Pour X variant de −5 à 10
. . . . . . . . . . . . . . .(1)
. . . . . . . . . . . . . . .(2)
Alors Afficher X et Y
Fin Si
Fin Pour
Fin Pour
Partie B
Le plan complexe est rapporté à un repère orthonormé (O; ⃗u; ⃗v ).
On considère la droite D d’équation
7x − 3y − 1 = 0
On définie la suite (An ) de points du plan de coordonnées (xn : yn ) vérifiant pour tout n entier naturel :
(
x0 = 1 xn+1 = − 13 2 xn + 3yn
et
y0 = 2 yn+1 = − 35 2 xn + 8yn
−13
3
1. On note M la matrice 2 . Pour tout entier naturel n, on pose
−35
2 8
xn
Xn = .
yn
4. Chiffrement de Hill
Le but de cet exercice est d’étudier, sur un exemple, une méthode de chiffrement publiée en 1929 par le mathématicien
et cryptologue Lester Hill. Ce chiffrement repose sur la donnée d’une matrice A, connue uniquement de l’émetteur et du
destinataire.
5 2
Dans tout l’exercice, on note A la matrice définie par : A = .
7 7
Étape 1 On divise le mot en blocs de deux lettres consécutives puis, pour chaque bloc, on effectue chacune des étapes
suivantes.
Étape 2 On associe aux deux lettres du bloc les deux entiers x1 et x2 tous deux compris entre 0 et 25, qui correspondent
aux deux lettres dans le même ordre, dans le tableau suivant :
A B C D E F G H I J K L M
0 1 2 3 4 5 6 7 8 9 10 11 12
N O P Q R S T U V W X Y Z
13 14 15 16 17 18 19 20 21 22 23 24 25
x1 y1
Étape 3 On transforme la matrice X = en la matrice Y = vérifiant Y = AX.
x
2 y2
y1 r1
Étape 4 On transforme la matrice Y = en la matrice R = , où r1 est le reste de la division euclidienne de
y2 r2
y1 par 26 et r2 celui de la division euclidienne de y2 par 26.
Étape 5 On associe aux entiers r1 et r2 les deux lettres correspondantes du tableau de l’étape 2.
Le bloc chiffré est le bloc obtenu en juxtaposant ces deux lettres.
Lire a
0←u
0←r
Tant que r ̸= 1
u+1←u
r prend la valeur du reste de la division euclidienne de u × a par 26
Fin du Tant que
u 0 1 2 …
r 0 21 … …
Partie C - Déchiffrement
On veut déchiffrer
le mot VLUP.
x1
On note X = la matrice associée, selon le tableau de correspondance, à un bloc de deux lettres avant chiffrement, et
x2
y1 5 2
Y = la matrice définie par l’égalité : Y = AX = X.
y2 7 7
Si r1 et r2 sont les restes respectifs
de y1 et y2 dans la division euclidienne par 26, le bloc de deux lettres après chiffrement
r
est associé à la matrice R = 1 .
r2
21x1 = 7y1 − 2y2
1. Démontrer que :
21x2 = −7y1 + 5y2
x1 ≡ 9r1 + 16r2 modulo 26
2. En utilisant la question B .2., établir que :
x2 ≡ 17r1 + 25r2 modulo 26
21 20
3. Déchiffrer le mot VLUP, associé aux matrices et .
11 15
5. Nombres de Mersenne
Les nombres de la forme 2n − 1 où n est un entier naturel non nul sont appelés nombres de Mersenne.
Il affirme que 3 divise 233 − 1 et 4 divise 233 − 1 et 12 ne divise pas 233 − 1 .
a) En quoi cette affirmation contredit-elle le résultat démontré à la question 1. ?
b) Justifier que, en réalité, 4 ne divise pas 233 − 1 .
c) En remarquant que 2 ≡ −1 [3], montrer que, en réalité, 3 ne divise pas 233 − 1.
2 3 10
d) Calculer la somme S = 1 + 23 + 23 + 23 + · · · + 23 .
e) En déduire que 7 divise 233 − 1.
3. On considère le nombre de Mersenne 27 − 1. Est-il premier ? Justifier.
2 ← k. √
Tant que MOD(2n − 1, k) ̸= 0 et k ⩽ 2n − 1
k ←k+1
Fin de Tant que.
Afficher√ k.
Si k > 2n − 1
Afficher « CAS 1 »
Sinon
Afficher « CAS 2 »
Fin de Si