Maths expertes · C1
expertes
Aller plus loin · Preuve

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 Z[i]\mathbb{Z}[i], sa traduction en arithmétique ordinaire, et le compte des points du réseau. Les voici. On note Z[i]\mathbb{Z}[i] l’ensemble des z=a+ibz = a+ib avec aZa \in \mathbb{Z} et bZb \in \mathbb{Z}, et N(z)=zz=a2+b2\mathrm{N}(z) = z\overline{z} = a^2+b^2 la norme de zz, à valeurs dans N\mathbb{N} et multiplicative.

1. L’algorithme d’Euclide dans Z[i]\mathbb{Z}[i]

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 Z[i]\mathbb{Z}[i]). Pour tous zZ[i]z \in \mathbb{Z}[i] et wZ[i]w \in \mathbb{Z}[i] avec w0w \neq 0, il existe qZ[i]q \in \mathbb{Z}[i] et rZ[i]r \in \mathbb{Z}[i] tels que z=qw+rz = qw + r et N(r)<N(w)\mathrm{N}(r) < \mathrm{N}(w). Le couple (q;r)(q\,;r) n’est pas nécessairement unique.

En pratique, on calcule le quotient zw\dfrac{z}{w} 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 r=zqwr = z - qw.

Cette division suffit à faire tourner l’algorithme d’Euclide, exactement comme dans Z\mathbb{Z}, 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é z=qw+rz = qw+r montre que les diviseurs communs de zz et ww sont exactement ceux de ww et rr : 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 11, 1-1, ii ou i-i.

Un exemple complet. Prenons p=89p = 89, qui est premier et vaut 4×22+14 \times 22 + 1, et l’entier m=34m = 34, qui vérifie 342+1=1157=13×8934^2 + 1 = 1157 = 13 \times 89. Calculons le PGCD de 8989 et de 34+i34+i dans Z[i]\mathbb{Z}[i].

Première division. 8934+i=89(34i)1157=302689i11572,6150,077i\dfrac{89}{34+i} = \dfrac{89(34-i)}{1157} = \dfrac{3026 - 89i}{1157} \approx 2{,}615 - 0{,}077\,i. Le nœud le plus proche est q1=3q_1 = 3, d’où

r1=893(34+i)=133i,N(r1)=178<1157.r_1 = 89 - 3(34+i) = -13 - 3i, \qquad \mathrm{N}(r_1) = 178 < 1157 .

Deuxième division. 34+i133i=445+89i178=2,5+0,5i\dfrac{34+i}{-13-3i} = \dfrac{-445+89i}{178} = -2{,}5 + 0{,}5\,i. 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 (q;r)(q\,;r). Choisissons q2=2q_2 = -2 :

r2=(34+i)(2)(133i)=85i,N(r2)=89<178.r_2 = (34+i) - (-2)(-13-3i) = 8 - 5i, \qquad \mathrm{N}(r_2) = 89 < 178 .

Troisième division. 133i85i=1i\dfrac{-13-3i}{8-5i} = -1-i, qui appartient à Z[i]\mathbb{Z}[i] : le reste est nul.

Le dernier reste non nul est 85i8-5i, de norme 8989. Et l’on lit la conclusion sur ses deux coordonnées :

89=82+52.89 = 8^2 + 5^2 .

Voilà la méthode, et elle n’a rien d’un hasard. Notons dd le PGCD de pp et de m+im+i. Il divise pp, donc N(d)\mathrm{N}(d) divise N(p)=p2\mathrm{N}(p) = p^2 : cette norme vaut 11, pp ou p2p^2. Elle ne vaut pas 11 : sinon la relation de Bézout de la partie III du devoir fournirait uu et vv dans Z[i]\mathbb{Z}[i] tels que pu+(m+i)v=1pu + (m+i)v = 1, et en multipliant par mim-i il viendrait pu(mi)+(m2+1)v=mip\,u(m-i) + \left(m^2+1\right)v = m-i, donc pp diviserait mim-i, ce qui est exclu par la partie imaginaire. Elle ne vaut pas non plus p2p^2 : dd serait alors associé à pp, qui ne divise pas m+im+i pour la même raison. Donc N(d)=p\mathrm{N}(d) = p, et les deux coordonnées de dd sont les deux carrés cherchés.

Un autre choix de nœud à la deuxième division aurait donné 8+5i-8+5i, ou 5+8i5+8i : 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 19081908, Giuseppe Cornacchia publie une version de ce calcul qui ne mentionne aucun nombre complexe et qui tient en trois lignes.

L’algorithme. Soit pp un nombre premier tel que p1 [4]p \equiv 1 \ [4], et soit mm un entier tel que 0<m<p0 < m < p et pp divise m2+1m^2+1 ; c’est l’entier fourni par le résultat R4 du devoir.

  1. Lancer l’algorithme d’Euclide ordinaire sur le couple (p;m)(p\,;m).
  2. S’arrêter au premier reste strictement inférieur à p\sqrt{p} ; on le note xx.
  3. Poser y=px2y = \sqrt{p - x^2}. Alors p=x2+y2p = x^2 + y^2.

L’exemple. Reprenons p=89p = 89 et m=34m = 34. On a 899,43\sqrt{89} \approx 9{,}43.

89=2×34+21,34=1×21+13,21=1×13+8.89 = 2 \times 34 + 21, \qquad 34 = 1 \times 21 + 13, \qquad 21 = 1 \times 13 + 8 .

Les restes successifs sont 2121, puis 1313, puis 88. Le premier qui passe sous 9,439{,}43 est 88 : donc x=8x = 8, puis y=8964=5y = \sqrt{89-64} = 5, et 89=64+2589 = 64+25. Trois divisions d’entiers, et le calcul est fini.

Pourquoi cela marche. L’algorithme de Cornacchia est le PGCD gaussien de pp et de m+im+i, regardé à travers les seules parties réelles. Comparez les deux calculs menés plus haut : les restes gaussiens étaient 8989, 34+i34+i, 133i-13-3i, 85i8-5i, dont les parties réelles valent, au signe près, 8989, 3434, 1313, 88 ; la suite des restes d’Euclide ordinaire est 8989, 3434, 2121, 1313, 88. 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 N\mathbb{N}, effectue en deux fois.

Le seuil p\sqrt{p}, lui, sert de détecteur : le PGCD gaussien cherché a pour norme pp, donc ses deux coordonnées sont de valeur absolue strictement inférieure à p\sqrt{p}, tandis que les restes qui le précèdent restent au-dessus. Le premier reste ordinaire à passer sous p\sqrt{p} est donc exactement la partie réelle du PGCD, et le calcul de yy 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 mm. C’est le résultat admis du devoir, celui qui viendra du théorème de Wilson au chapitre A3. Une fois mm 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 n\sqrt{n} ? Autrement dit, combien de couples (a;b)(a\,;b) d’entiers relatifs, l’ordre comptant, vérifient a2+b2=na^2+b^2 = n ? Notons r2(n)r_2(n) ce nombre. La réponse porte un nom.

Théorème (Jacobi, 18291829). Pour tout nNn \in \mathbb{N}^{*},

r2(n)=4(d1(n)d3(n)),r_2(n) = 4\left(d_1(n) - d_3(n)\right),

d1(n)d_1(n) est le nombre de diviseurs positifs de nn congrus à 11 modulo 44, et d3(n)d_3(n) le nombre de ceux qui sont congrus à 33 modulo 44.

L’idée de la démonstration. Un point du réseau sur le cercle, c’est exactement un zZ[i]z \in \mathbb{Z}[i] de norme nn. On les compte par leur factorisation, en admettant l’unicité de la décomposition en irréductibles de Z[i]\mathbb{Z}[i], le résultat R5 du devoir.

Il faut d’abord connaître les irréductibles de Z[i]\mathbb{Z}[i], et le devoir en donne la clé : 22 se casse en (1+i)(1i)(1+i)(1-i), deux facteurs associés ; chaque premier p1 [4]p \equiv 1 \ [4] se casse en ππ\pi\overline{\pi}, avec π\pi et π\overline{\pi} irréductibles non associés, chacun de norme pp ; chaque premier q3 [4]q \equiv 3 \ [4] reste irréductible, de norme q2q^2.

Écrivons alors n=2cpapqbqn = 2^{\,c} \prod p^{\,a_p} \prod q^{\,b_q}, où les pp parcourent les premiers congrus à 11 et les qq ceux congrus à 33. Un élément zz de norme nn s’écrit nécessairement

z=ε(1+i)cπjpπapjpqbq/2,z = \varepsilon \, (1+i)^{\,c} \prod \pi^{\,j_p}\,\overline{\pi}^{\,a_p - j_p} \prod q^{\,b_q/2},

et le décompte des choix se fait terme à terme. L’inversible ε\varepsilon offre 44 possibilités. Chaque premier congru à 11 offre ap+1a_p+1 façons de répartir ses facteurs entre π\pi et π\overline{\pi}, l’entier jpj_p allant de 00 à apa_p. Chaque premier congru à 33 n’offre aucun choix, et impose que bqb_q soit pair, faute de quoi aucun zz n’existe. Le facteur 22 n’offre aucun choix non plus. Au total :

r2(n)=4p1[4](ap+1)si tous les bq sont pairs,r2(n)=0 sinon.r_2(n) = 4 \prod_{p\,\equiv\,1\,[4]} \left(a_p+1\right) \quad \text{si tous les } b_q \text{ sont pairs}, \qquad r_2(n) = 0 \text{ sinon}.

Il reste à reconnaître là le membre de droite du théorème. Posons χ(d)=1\chi(d) = 1 si d1 [4]d \equiv 1 \ [4], χ(d)=1\chi(d) = -1 si d3 [4]d \equiv 3 \ [4], et χ(d)=0\chi(d) = 0 si dd est pair. Alors d1(n)d3(n)=dnχ(d)d_1(n) - d_3(n) = \sum_{d \mid n} \chi(d), et comme χ\chi est complètement multiplicative, cette somme est une fonction multiplicative de nn : il suffit de l’évaluer sur les puissances de nombres premiers. Sur 2c2^{\,c} elle vaut 11, seul le diviseur 11 étant impair. Sur pap^{\,a} avec p1p \equiv 1, tous les diviseurs sont congrus à 11 et elle vaut a+1a+1. Sur qbq^{\,b} avec q3q \equiv 3, les diviseurs alternent entre les deux classes et elle vaut 11 si bb est pair, 00 sinon. Les deux produits coïncident terme à terme. \square

Quatre contrôles, faits à la main.

nndécompositiond1(n)d3(n)d_1(n) - d_3(n)r2(n)r_2(n)
727223×322^3 \times 3^221=12 - 1 = 144
16916913213^230=33 - 0 = 31212
77777×117 \times 1122=02 - 2 = 000
85855×175 \times 1740=44 - 0 = 41616

Et les points eux-mêmes, pour que le compte se vérifie à l’œil : sur le cercle de rayon 72\sqrt{72}, les quatre points (±6;±6)(\pm 6\,;\pm 6) ; sur celui de rayon 1313, les douze points (0;±13)(0\,;\pm 13), (±13;0)(\pm 13\,;0), (±5;±12)(\pm 5\,;\pm 12) et (±12;±5)(\pm 12\,;\pm 5) ; sur celui de rayon 77\sqrt{77}, aucun ; sur celui de rayon 85\sqrt{85}, les seize points (±2;±9)(\pm 2\,;\pm 9), (±9;±2)(\pm 9\,;\pm 2), (±6;±7)(\pm 6\,;\pm 7) et (±7;±6)(\pm 7\,;\pm 6).

Le cas de 7272 mérite un regard : le facteur 33 y est congru à 33 modulo 44, mais il y figure au carré, et le cercle porte quand même quatre points. Le cas de 7777 est l’inverse : deux facteurs congrus à 33, chacun à l’exposant 11, et le cercle est vide.

Ce n’est pas une coïncidence. La formule de Jacobi contient tout le critère : r2(n)r_2(n) est nul exactement lorsqu’un facteur premier congru à 33 modulo 44 apparaît à un exposant impair. Le théorème qui trie les entiers en deux familles n’est donc que le cas particulier « r2(n)=0r_2(n) = 0 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 2828, pour la norme et les inversibles.
  • Giuseppe Cornacchia, Su di un metodo per la risoluzione in numeri interi dell’equazione h=0nChxnhyh=P\sum_{h=0}^{n} C_h x^{n-h} y^{h} = P, Giornale di Matematiche di Battaglini, 19081908.
  • Carl Gustav Jacob Jacobi établit la formule de r2r_2 dans les Fundamenta nova theoriae functionum ellipticarum, 18291829, par une voie entièrement différente, celle des fonctions thêta. La preuve esquissée ici, par Z[i]\mathbb{Z}[i], 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 8989 est en outre recalculée par le deuxième script de la page voisine.
← Retour au chapitre C1