# Check if right triangle possible from given area and hypotenuse

Given area and hypotenuse, the aim is to print all sides if right triangle can exist, else print -1. We need to print all sides in ascending order.

Examples:

```Input  : 6 5
Output : 3 4 5

Input  : 10 6
Output : -1
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

We have discussed a solution of this problem in below post.
Find all sides of a right angled triangle from given hypotenuse and area | Set 1

In this post, a new solution with below logic is discussed.

Let the two unknown sides be a and b
Area : A = 0.5 * a * b
Hypotenuse Square : H^2 = a^2 + b^2
Substituting b, we get H2 = a2 + (4 * A2)/a2
On re-arranging, we get the equation a4 – (H2)(a2) + 4*(A2)

The discriminant D of this equation would be D = H4 – 16*(A2)
If D = 0, then roots are given by the linear equation formula, roots = (-b +- sqrt(D) )/2*a
these roots would be equal to the square of the sides, finding the square roots would give us the sides.

```# Python program to check existence of
# right triangle.
from math import sqrt

# Prints three sides of a right trianlge
# from given area and hypotenuse if triangle
# is possible, else prints -1.
def findRightAngle(A, H):

# Descriminant of the equation
D = pow(H,4) - 16 * A * A
if D >= 0:

# applying the linear equation
# formula to find both the roots
root1 = (H * H + sqrt(D))/2
root2 = (H * H - sqrt(D))/2

a = sqrt(root1)
b = sqrt(root2)
if b >= a:
print a, b, H
else:
print b, a, H
else:
print "-1"

# Driver code
# Area is 6 and hypotenuse is 5.
findRightAngle(6, 5)
```

Output:

```3.0 4.0 5
```

This article is contributed by Harshit Agrawal. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

# GATE CS Corner    Company Wise Coding Practice

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.
1 Average Difficulty : 1/5.0
Based on 1 vote(s)