Tous les défis
Moyen 0 résolus 0 % de réussite

Produit d’un triangle rectangle

Trouvez le plus grand produit des côtés d’un triangle rectangle à entiers avec un périmètre donné.

Trouvez des entiers positifs a < b < c tels que a² + b² = c² et a + b + c = perimeter. Retournez le plus grand produit a × b × c parmi les triangles admissibles, ou −1 s’il n’en existe aucun. Ceci généralise le problème source à périmètre fixé et gère explicitement les cas à plusieurs réponses.

Implémentez pythagorean_product(perimeter).

Entrée

perimeter : La somme requise des trois côtés.

Sortie

Retournez le plus grand produit, ou −1 si aucun triangle ne convient.

Contraintes

3 ≤ perimeter ≤ 100 000. Les produits tiennent dans un entier signé 64 bits.

Exemples

Exemple 1
Entrée :
perimeter = 30

Sortie attendue :
expected = 780
Entrée :
long long perimeter = 30;

Sortie attendue :
long long expected = 780;
Entrée :
long perimeter = 30;

Sortie attendue :
long expected = 780;

Explication

Le triangle est (5, 12, 13) : 25 + 144 = 169 et 5 + 12 + 13 = 30. Son produit est 780.

Exemple 2
Entrée :
perimeter = 11

Sortie attendue :
expected = -1
Entrée :
long long perimeter = 11;

Sortie attendue :
long long expected = -1;
Entrée :
long perimeter = 11;

Sortie attendue :
long expected = -1;

Explication

Aucun triplet croissant d’entiers positifs formant un triangle rectangle n’a pour somme 11.

Références

Ce défi a été adapté pour CodeUtility. Suivez l'énoncé et les contraintes ci-dessus.

Apprenez des autres

Solutions de la communauté

Aucune solution publiée pour l'instant. Résolvez ce défi pour partager la première.