Le PGCD gaussien et l'algorithme de Cornacchia
Fabriquer effectivement les deux carrés, par l'algorithme d'Euclide dans les entiers de Gauss puis par sa traduction sans nombres complexes ; et le compte exact des points du réseau sur un cercle.
Le théorème de Noël garantit l’existence de deux carrés sans jamais les produire. C’est la faiblesse ordinaire des démonstrations d’existence, et la sortie du devoir promet trois compléments pour la réparer : la méthode du PGCD dans , sa traduction en arithmétique ordinaire, et le compte des points du réseau. Les voici. On note l’ensemble des avec et , et la norme de , à valeurs dans et multiplicative.
1. L’algorithme d’Euclide dans
Tout part du théorème que le devoir établit dans sa partie II, et que l’on prend ici pour acquis sans le redémontrer.
Théorème (division euclidienne dans ). Pour tous et avec , il existe et tels que et . Le couple n’est pas nécessairement unique.
En pratique, on calcule le quotient sous forme algébrique, on arrondit séparément ses deux coordonnées au nœud le plus proche du réseau, et l’on pose .
Cette division suffit à faire tourner l’algorithme d’Euclide, exactement comme dans , et deux remarques valident le procédé. Il s’arrête, car les normes des restes successifs forment une suite strictement décroissante d’entiers naturels. Et à chaque étape l’égalité montre que les diviseurs communs de et sont exactement ceux de et : cet ensemble ne change jamais. Le dernier reste non nul divise donc les deux nombres de départ et est divisible par tous leurs diviseurs communs : c’est un PGCD, défini à multiplication près par , , ou .
Un exemple complet. Prenons , qui est premier et vaut , et l’entier , qui vérifie . Calculons le PGCD de et de dans .
Première division. . Le nœud le plus proche est , d’où
Deuxième division. . Ici le nœud le plus proche n’est pas unique, et c’est exactement l’ambiguïté que le résultat R3 du devoir annonce en refusant l’unicité du couple . Choisissons :
Troisième division. , qui appartient à : le reste est nul.
Le dernier reste non nul est , de norme . Et l’on lit la conclusion sur ses deux coordonnées :
Voilà la méthode, et elle n’a rien d’un hasard. Notons le PGCD de et de . Il divise , donc divise : cette norme vaut , ou . Elle ne vaut pas : sinon la relation de Bézout de la partie III du devoir fournirait et dans tels que , et en multipliant par il viendrait , donc diviserait , ce qui est exclu par la partie imaginaire. Elle ne vaut pas non plus : serait alors associé à , qui ne divise pas pour la même raison. Donc , et les deux coordonnées de sont les deux carrés cherchés.
Un autre choix de nœud à la deuxième division aurait donné , ou : le même nombre à un inversible près, donc la même paire de carrés.
2. Cornacchia, la même chose sans nombres complexes
En , Giuseppe Cornacchia publie une version de ce calcul qui ne mentionne aucun nombre complexe et qui tient en trois lignes.
L’algorithme. Soit un nombre premier tel que , et soit un entier tel que et divise ; c’est l’entier fourni par le résultat R4 du devoir.
- Lancer l’algorithme d’Euclide ordinaire sur le couple .
- S’arrêter au premier reste strictement inférieur à ; on le note .
- Poser . Alors .
L’exemple. Reprenons et . On a .
Les restes successifs sont , puis , puis . Le premier qui passe sous est : donc , puis , et . Trois divisions d’entiers, et le calcul est fini.
Pourquoi cela marche. L’algorithme de Cornacchia est le PGCD gaussien de et de , regardé à travers les seules parties réelles. Comparez les deux calculs menés plus haut : les restes gaussiens étaient , , , , dont les parties réelles valent, au signe près, , , , ; la suite des restes d’Euclide ordinaire est , , , , . La première est une sous-suite de la seconde, parce que l’arrondi au nœud le plus proche saute parfois une étape que l’arrondi par défaut, celui de la division dans , effectue en deux fois.
Le seuil , lui, sert de détecteur : le PGCD gaussien cherché a pour norme , donc ses deux coordonnées sont de valeur absolue strictement inférieure à , tandis que les restes qui le précèdent restent au-dessus. Le premier reste ordinaire à passer sous est donc exactement la partie réelle du PGCD, et le calcul de ne fait que retrouver l’autre coordonnée. La vérification complète de cette correspondance est un exercice classique, technique mais sans idée nouvelle, qui repose sur la théorie des fractions continues à quotients arrondis.
Reste le vrai travail, et il est en amont : trouver . C’est le résultat admis du devoir, celui qui viendra du théorème de Wilson au chapitre A3. Une fois connu, Cornacchia rend les deux carrés en quelques dizaines de divisions, même pour un nombre premier à trente chiffres. Le contraste avec le tâtonnement est total.
3. Compter les points du réseau : le théorème de Jacobi
Dernière dette. Combien de points à coordonnées entières porte le cercle de centre l’origine et de rayon ? Autrement dit, combien de couples d’entiers relatifs, l’ordre comptant, vérifient ? Notons ce nombre. La réponse porte un nom.
Théorème (Jacobi, ). Pour tout ,
où est le nombre de diviseurs positifs de congrus à modulo , et le nombre de ceux qui sont congrus à modulo .
L’idée de la démonstration. Un point du réseau sur le cercle, c’est exactement un de norme . On les compte par leur factorisation, en admettant l’unicité de la décomposition en irréductibles de , le résultat R5 du devoir.
Il faut d’abord connaître les irréductibles de , et le devoir en donne la clé : se casse en , deux facteurs associés ; chaque premier se casse en , avec et irréductibles non associés, chacun de norme ; chaque premier reste irréductible, de norme .
Écrivons alors , où les parcourent les premiers congrus à et les ceux congrus à . Un élément de norme s’écrit nécessairement
et le décompte des choix se fait terme à terme. L’inversible offre possibilités. Chaque premier congru à offre façons de répartir ses facteurs entre et , l’entier allant de à . Chaque premier congru à n’offre aucun choix, et impose que soit pair, faute de quoi aucun n’existe. Le facteur n’offre aucun choix non plus. Au total :
Il reste à reconnaître là le membre de droite du théorème. Posons si , si , et si est pair. Alors , et comme est complètement multiplicative, cette somme est une fonction multiplicative de : il suffit de l’évaluer sur les puissances de nombres premiers. Sur elle vaut , seul le diviseur étant impair. Sur avec , tous les diviseurs sont congrus à et elle vaut . Sur avec , les diviseurs alternent entre les deux classes et elle vaut si est pair, sinon. Les deux produits coïncident terme à terme.
Quatre contrôles, faits à la main.
| décomposition | |||
|---|---|---|---|
Et les points eux-mêmes, pour que le compte se vérifie à l’œil : sur le cercle de rayon , les quatre points ; sur celui de rayon , les douze points , , et ; sur celui de rayon , aucun ; sur celui de rayon , les seize points , , et .
Le cas de mérite un regard : le facteur y est congru à modulo , mais il y figure au carré, et le cercle porte quand même quatre points. Le cas de est l’inverse : deux facteurs congrus à , chacun à l’exposant , et le cercle est vide.
Ce n’est pas une coïncidence. La formule de Jacobi contient tout le critère : est nul exactement lorsqu’un facteur premier congru à modulo apparaît à un exposant impair. Le théorème qui trie les entiers en deux familles n’est donc que le cas particulier « ou non » d’un énoncé qui, lui, sait compter.
Sources
- Devoir C1 n°1, Le théorème de Noël : partie II pour la division euclidienne prise ici pour acquise, résultat R5 pour l’unicité de la décomposition, questions Q15a et Q15c pour les deux promesses tenues sur cette page. Atelier C1, exercice , pour la norme et les inversibles.
- Giuseppe Cornacchia, Su di un metodo per la risoluzione in numeri interi dell’equazione , Giornale di Matematiche di Battaglini, .
- Carl Gustav Jacob Jacobi établit la formule de dans les Fundamenta nova theoriae functionum ellipticarum, , par une voie entièrement différente, celle des fonctions thêta. La preuve esquissée ici, par , est celle qu’on donne aujourd’hui.
- Toutes les valeurs numériques de cette page ont été vérifiées à la main ; la décomposition de est en outre recalculée par le deuxième script de la page voisine.