Décomposition en facteurs premiers, petit théorème de Fermat et applications.
Un nombre premier n'a que deux diviseurs : 1 et lui-même. Ils sont les « atomes » des entiers (théorème fondamental de l'arithmétique : tout entier >1>1 se décompose de manière unique en produit de premiers). Étude centrale en mathématiques pures et en cryptographie.
Au programme : définition d'un nombre premier ; crible d'Ératosthène (méthode systématique pour trouver tous les premiers ≤n≤ n) ; décomposition en facteurs premiers et son unicité ; application au calcul de PGCD et PPCM par décomposition ; infinité des nombres premiers (démonstration d'Euclide à connaître pour son élégance) ; petit théorème de Fermat (si pp premier et aa non divisible par pp, alors ap−1≡1(modp)a^(p-1)≡ 1pmodp).
Pièges classiques : oublier que 1 n'est PAS premier (par convention) ; mal décomposer (1 n'a pas de décomposition non triviale) ; oublier le cas où aa est divisible par pp dans Fermat. Méthode : tester la divisibilité par les premiers ≤n≤√(n) suffit. La cryptographie RSA repose sur la difficulté de factoriser un grand nombre.
Nombres premiers en Maths expertes : cours complet
Les nombres premiers sont les briques élémentaires des entiers : tout entier ≥2≥ 2 se décompose de manière unique en produit de premiers. Ils sont au cœur de l'arithmétique et de la cryptographie moderne.
Définition
Définition
Un entier n≥2n ≥ 2 est premier s'il n'a que deux diviseurs positifs : 11 et nn.
Pour vérifier si nn est premier, on teste sa divisibilité par tous les premiersp≤np ≤ √(n).
Justification
Si n=abn = ab avec 1<a≤b<n1 < a ≤ b < n, alors a≤na ≤ √(n).
Exemple
9797 premier ? 97≈9,8√(97) ≈ 9,8. On teste 2,3,5,72, 3, 5, 7 : aucun ne divise 9797. Donc 9797 est premier.
Crible d'Ératosthène
Algorithme pour trouver tous les premiers ≤N≤ N :
Liste tous les entiers de 22 à NN.
Marque le premier non marqué (premier).
Élimine tous ses multiples.
Recommence avec le suivant.
def crible(N):
premiers = [True] * (N + 1)
premiers[0] = premiers[1] = False
for i in range(2, int(N**0.5) + 1):
if premiers[i]:
for j in range(i*i, N + 1, i):
premiers[j] = False
return [i for i, p in enumerate(premiers) if p]
Décomposition en facteurs premiers
Théorème fondamental de l'arithmétique
Tout entier n≥2n ≥ 2 se décompose de manière unique (à l'ordre près) en produit de premiers :
Par l'absurde : si {p1,…,pn}{p₁, …, pₙ} sont tous les premiers, on considère N=p1⋯pn+1N = p₁ … pₙ + 1. NN n'est divisible par aucun pipᵢ, contradiction.
Petit théorème de Fermat
Énoncé
Si pp est premier et gcd(a,p)=1gcd(a, p) = 1 :
ap−1≡1(modp)a^(p-1) ≡ 1 pmodp
Conséquence
ap≡a(modp)∀a∈Za^(p) ≡ a pmodp ∀ a ∈ ℤ
Application : test de primalité de Fermat
Si pp est premier et ap−1≡1(modp)a^(p-1) not≡ 1 pmodp pour un certain aa, alors pp n'est pas premier.
Attention : la réciproque est fausse (nombres de Carmichael).
Lemme de Gauss
p premier et p∣ab⟹p∣a ou p∣bp premier et p | ab ⇒ p | a ou p | b
C'est ce qui fait l'unicité de la décomposition en facteurs premiers.
PGCD et PPCM via la décomposition
Si a=∏piαia = Π pᵢ^(αᵢ) et b=∏piβib = Π pᵢ^(βᵢ) :
gcd(a,b)=∏pimin(αi,βi)gcd(a, b) = Π pᵢ^(min(αᵢ, βᵢ))
ppcm(a,b)=∏pimax(αi,βi)ppcm (a, b) = Π pᵢ^(max(αᵢ, βᵢ))