[<] Études arithmétiques [>] Petit théorème de Fermat
Soient et un nombre premier. On suppose qu’il existe tel que divise le ppcm de et . Établir que divise ou .
Solution
Notons la valuation -adique :
On sait
Si divise , alors et donc ou . On en déduit que divise ou .
Pour et , on note l’exposant de la plus grande puissance de divisant .
Montrer que .
Plus généralement, calculer . On rappelle que
Solution
car avec produit de nombres impairs.
.
En isolant les multiples de dans le produit décrivant , on obtient
puis
or
avec donne
puis finalement
avec
(Formule de Legendre)
Soient un nombre premier et . Établir
Application : Soient . Montrer
On note l’ensemble des nombres premiers. Pour tout entier , on note l’exposant de dans la décomposition de en facteurs premiers. On note la partie entière de . On note le nombre de nombres premiers au plus égaux à .
Montrer
Montrer que divise .
Montrer que .
Montrer que quand
Solution
Pour suffisamment grand , la somme évoquée existe donc car elle ne comporte qu’un nombre fini de termes non nuls. , parmi les entiers allant de 1 à , il y en a exactement divisibles par , divisibles par , etc…donc
On a
Pour tout ,
or ou 1 donc
De plus, les nombres premiers diviseurs de sont diviseurs d’un entier inférieur à (lemme d’Euclide) et sont donc eux-mêmes inférieur à . Il en découle
car toutes les puissances de nombres premiers intervenant dans la décomposition de divisent .
Notons qu’en fait ce produit désigne
On a
En passant au logarithme:
À l’aide d’une comparaison intégrale on obtient
donc
donc
Par suite,
puis
On en déduit
Ajoutons
par calculs et car et ne différent qu’au plus d’une unité et .
Finalement, une certaine satisfaction.
Dans cet exercice, on note (respectivement ) l’ensemble des nombres premiers (respectivement, des nombres premiers inférieurs ou égaux à ).
Pour et , on note l’exposant de dans la décomposition de en facteurs premiers.
Écrire une fonction python premiers(n) renvoyant une liste de taille telle que premier(n)[k] vaut si est premier et sinon.
Figurer les fonctions , et . Formuler une conjecture.
On fixe dans cette question un nombre premier et un entier . Montrer que, pour tout ,
En déduire que
puis que
Proposer un encadrement de .
Montrer que pour tout entier , il existe tel que
Établir que pour tout et conclure quant à la conjecture énoncée précédemment.
Solution
Par le crible d’Ératosthène,
def premiers(n):
L = [0 for _ in range(n+1)]
if n >= 2:
L[2:] = [1]*(n-1)
for p in range(2, int(n**0.5)+1):
if L[p] == 1:
for k in range(p*p, n+1, p):
L[k] = 0
return L
On obtient les tracés par le code suivant:
import matplotlib.pyplot as plt N = 100 P = np.array(premiers(N)) n = np.array([1] + list(range(1, N+1))) P = P * np.log(n)/n plt.plot(n, np.log(n) - np.log(4) - 1) plt.plot(n, np.cumsum(P)) plt.plot(n, np.log(n) + np.log(4)) plt.show()
Ces tracés suggèrent l’encadrement
Soit . Les entiers tels que sont ceux divisibles par mais pas par . Pour donné, le nombre d’entiers divisisible par est exactement et donc
La propriété pour donne
On réorganise le calcul de la somme selon de la valeur de
Les termes sommés sont nuls à partir d’un certain rang, on peut séparer la somme en deux et conclure à l’aide d’un glissement d’indice
Sachant , on obtient l’encadrement
donc
Puisque
on a
En utilisant les encadrements précédents
La fonction est continue par morceaux et croissante sur . Par comparaison série-intégrale,
On en déduit
puis l’existence tel que
On établit en raisonnant par récurrence forte sur .
Pour et , c’est immédiat.
Supposons la propriété vérifiée jusqu’au rang .
Si n’est pas un nombre premier, alors
Si est un nombre premier, nécessairement impair, on écrit .
Les nombres premiers compris entre et divisent tous et l’on a
Par l’hypothèse de récurrence,
La récurrence est établie.
L’inégalité
donne
D’une part,
D’autre part,
On a donc
L’inégalité
donne
D’une part,
D’autre part,
On obtient donc
Soit . Si est l’espression de en base on note
Écrire une fonction calculant et .
Si , vérifier numériquement que .
Prouver que pour tout , .
Calculer en fonction de et .
Soit . Montrer que est une puissance de si, et seulement si, est un entier pair pour tout .
Solution
Tant qu’une puissance de divise , on passe à la puissance suivante:
def v(n):
k = 0
p = 1
while n % (2*p) == 0:
k = k + 1
p = 2 * p
return k
Pour calculer , une solution récursive est possible:
def s(n):
if n == 0:
return 0
elif n % 2 == 0:
return s(n//2)
else:
return 1 + s((n-1) // 2)
On vérifie qu’aucune valeur n’échoue
for n in range(2, 10**4+1):
if v(n) != s(n-1) - s(n) + 1:
print(f"Echec pour la valeur {n}")
Posons la valuation de en base . L’écriture en base de se termine par avec un nombre de zéro égal à . L’écriture de commence par les mêmes chiffres mais se termine par . On en déduit .
Pour , donc
Cas: ou . C’est immédiat.
Cas: . Soit . On remarque
Si vaut , son écriture en base de est de la forme avec chiffres . Pour , les chiffres de l’écriture en base de sont les « inverses » des chiffres en base de de puisque . En particulier, . On a donc . Le coefficient binomial est pair.
Si n’est pas une puissance de , on peut écrire avec . Considérons alors . On a et donc . Par conséquent, la valuation en base du coefficient binomial est nulle: c’est entier est impair.
[<] Études arithmétiques [>] Petit théorème de Fermat
Édité le 06-05-2026
Bootstrap 3
-
LaTeXML
-
Powered by MathJax