ChronoMath, une chronologie des MATHÉMATIQUES
à l'usage des professeurs de mathématiques, des étudiants et des élèves des lycées & collèges

Triplets pythagoriciens

La recherche de la forme générale des triplets (a,b,c) d'entiers naturels non nuls vérifiant a2 + b2 = c2, issus du théorème de Pythagore, appelés triplets pythagoriciens ou triades, comme (3, 4, 5) ou (5, 12, 13), fut étudiée par Euclide.

 !  On sait que la conjecture de Fermat selon laquelle an + bn = cn ne peut avoir lieu en nombres entiers pour n > 2 a été prouvée par Andrew Wiles en 1995.

  Dans cette recherche, on peut se limiter au cas où  a, b et c sont premiers entre eux. En effet, si tel n'est pas le cas, k désignant le pgcd de a, b et c, on aura a = ka', b = kb', c = kc' et a2 + b2 = c2 sera équivalent à a'2 + b'2 = c'2 en divisant par k2 avec a', b' et c' sont premiers entre eux.

  Ensuite, il est clair que a et b ne peuvent être tous les deux impairs car si tel était le cas, les égalités a = 2p + 1, b = 2q + 1 fourniraient a2 + b2 = 4p2 + 4p + 4q2 + 4q + 2 , de la forme 4n + 2 = 2(2n + 1) qui ne peut être un carré.

  En conséquence, on peut supposer b pair et a impair impliquant c2 impair donc c impair. On ne restreint alors pas la généralité en recherchant a et c sous la forme :

a = u - v et c = u + v avec u > v

cela signifiant que u = (a + c)/2 et v = (c - a)/2 : ce sont des entiers puisque  a et c sont impairs.


a, b et c étant supposés premiers entre eux, vérifier que u et v le sont aussi.

L'entier b vérifie b2 = c2 - a2. Par suite :

Le produit uv est donc un carré parfait (et b est effectivement pair).

En décomposant u et v sous forme de produits de facteurs premiers et en regroupant les facteurs d'exposants pairs, on peut donc écrire u et v sous les formes :

u = p2k  et v = q2k',

où k et k' sont des entiers, que l'on peut écrire comme produits de facteurs premiers distincts ou non dont l'exposant est 1.

Par conséquent le produit uv ne sera un carré parfait que si les facteurs premiers de k se retrouvent dans k' et en nombre égal. De même pour k'. Donc k = k' et par conséquent u = kp2, v = kq2, p > q puisque u > v. Or u et v sont premiers entre eux : donc k = 1 et u = p2  et v = q2» voir aussi ce lemme.


Prouver que p2 et q2 premiers entre eux implique p et q premiers entre eux.

En conclusion :

a = p2 - q2 , b = 2pq , c = p2 + q2 , p > q, p et q premiers entre eux

et, plus généralement, en levant la condition pgcd(a,b,c) = 1, tout triplet pythagoricien est de la forme :

a = n(p2 - q2) , b = 2npq , c = n(p2 + q2) , p > q, p et q premiers entre eux, n entier arbitraire


Vérifier que pour k = 1 ci-dessus, a, b et c sont effectivement premiers entre eux.

Programme de recherche en JavaScript:

On demande ici à l'ordinateur de rechercher naïvement tous les triplets (a,b,c) d'entiers tels que a2 + b2 = c2

   Le programme proposé n'est pas optimal dans le sens où il ne recherche pas que les triades premières : triades (a,b,c) telles que a, b et c soient premiers entre eux. Dans ce type de problème résolu par l'ordinateur, il faut décider d'un juste équilibre entre simplicité (pédagogie), efficacité et temps de calcul. Remarquer que la ligne 2 du programme évite des cas comme (6,8,10) = 2 x (3,4,5) mais n'élimine pas (9,12,15). Le lecteur intéressé pourra donc améliorer le programme...



Quelques triades trouvées par l'ordinateur :  

(3,4,5), (5,12,13), (7,24,25), (33,56,65), ..., (99,20,101)
 

<SCRIPT LANGUAGE=JavaScript>
var bt
function calcule()
{
bt=0
while (bt< 1)
{
for (a=1;a<=100;a++)
{
for (b=0;b<=100;b++)
{b++
m=b
if (a > b) {m = a}
for (c=m+1;c<= b+a-1;c++)
{
if (c*c == a*a+b*b)
{
if (confirm("("+a+","+b+","+c+")"+"\n"+"Ok pour continuer"))
{}
else
{return}
}
}
}
}
}
return
}
</SCRIPT>

© Serge Mehl - www.chronomath.com