Aller au contenu

Mathématiques avec Python et Ruby/Triplets pythagoriciens en Python

Un livre de Wikilivres.

L'énoncé du problème est simple, sa solution avec Python aussi:

Énoncé

Trouver tous les triplets pythagoriciens (x,y,z) tels que ; autrement dit, on demande les triangles rectangles de périmètre 1000 dont les côtés sont entiers.

En considérant x, y et z comme classés dans l'ordre croissant, on va faire une boucle sur y (le plus grand des côtés de l'angle droit), et à l'intérieur de celle-ci, une autre boucle sur x. Enfin on calcule l'hypoténuse z, puis le périmètre du triangle. Et si celui-ci vaut 1000, on affiche le triplet:

from math import hypot

for y in range(1000):
    for x in range(y):
        z=hypot(x,y)
        if x+y+z==1000:
            print(x,y,z)


Le script nous apprend qu'il n'y a qu'un seul triplet pythagoricien de somme 1000.