Soit n∈N∗, on appelle indicatrice d'Euler de n, et on note φ(n), le nombre d'entiers entre 1 et n qui sont premiers avec n.
∀p∈P,φ(p)=p−1
On voit en exercice comment calculer φ(n) à l'aide de la décomposition en facteurs premiers ; φ fait partie des fonctions multiplicatives.
Théorème (Euler) : (admis) Soit a∈Z, et n∈N∗, alors :
PGCD(a,n)=1⟺aφ(n)≡1(modn)
En particulier, si a est inversible modulo n, un inverse modulo n de a est aφ(n)−1. Ce qui fournit une nouvelle méthode pour l'inversion modulaire. Avec Python
on utilisera la fonction pow
pour avoir un résultat rapidement.
Théorème (Fermat) : (Cas particulier du théorème d'Euler) Soit a∈Z, et p∈P, alors :
PGCD(a,p)=1⟺ap−1≡1(modp)
Si p∈P et PGCD(a,p)=1, alors p divise a, on a a≡0(modp), et donc :
an≡a(modp)
Cette égalité est valable pour tout nombre premier p et tout entier a inversible ou non modulo p.
Ce théorème de Fermat est à la base d'un test de primalité.
- Prouver que pour tout entier k, 2k+1 et 9k+4 sont premiers entre eux.
- En est-il de même avec 2k−1 et 9k+4.
La fonction φ d'Euler est définie sur N∗ par :
φ(n) est égal au nombre de d'entier m premiers avec n pour m∈[1..n]
Par exemple : φ(8)=4 car parmi les nombres de 1 à 8, seuls les quatre nombres 1, 3, 5 et 7 sont premiers avec 8.
- Faire un premier script avec une fonction
totient
pour l'indicatrice d'Euler.
- Vérifier que pour 1<u<v<100, avec u∧v=1, on a φ(u)×φ(v)=φ(uv)
Remarque : Cette propriété est vraie au-delà de 100, et de telles fonctions sont dites multiplicatives.
- Prouver cette propriété pour u et v des nombres premiers distincts.
- Quelle est la valeur de φ(p) pour p premier ?
- Montrer que φ(pn)=pn−1(p−1) pour p premier et n>0 ?
- Faire un nouveau script pour
totient
qui utilise la décomposition en facteurs premiers.
- Si n=pe, avec p∈P, et e∈N, alors :
- Les diviseurs de n sont : (1,p,p2,⋯,pe), il y en a e+1.
- La somme de ces diviseurs est 1+p+p2+⋯+pe.
Faire un script avec une fonction sommeDivPE(p, e)
qui renvoie la somme des diviseurs de n=pe quand p est premier.
-
- Si n=p1e1×p2e2×⋯×pkek est la décomposition en facteurs premiers de n>1, alors la somme des diviseurs de n est égale au produit de la somme des diviseurs de chaque piei.
- 1 est le seul diviseur de 1.
- Tous les entiers sont diviseurs de 0, mais on dira que leur somme est nulle (même si c'est faux).
Faire un script avec une fonction sumDiv(n)
qui renvoie la somme des diviseurs de n⩾0. Commencer par une version en force brute.
- On sait que n=paqb, avec p et q premiers distincts, et a>0, b>0.
On sait que n2 possède 81 diviseurs. Combien n3 a-t-il de diviseurs ?
- Soit p un nombre premier tel que 2p−1 soit premier. On pose n=(2p−1)×2p−1.
Prouver que la somme des diviseurs de n est égale à 2n.