# Generate a pythagoras triplet from a single integer

Given a single integer n [1, 1000000000], generate a pythagoras triplet with includes n as of it’s sides if possible.

Examples :

Input : 22
Output : Pythagoras Triplets exist i.e. 22 120 122

Input : 4
Output : Pythagoras Triplets exist i.e.  4 3 5

Input : 2
Output : No Pythagoras Triplet exists


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

Explanation:
Definition: “Pythagorean triplets” are integer solutions to the Pythagorean Theorem, i.e. they satisfy the equation Our task is to generate a triplet from an integral value. This can be a confusing task because, the side given to us can be a hypotenuse or a non-hypotenuse side.
Starting to calculate triplets by putting them in a formula, it can be deduced that only for 1 and 2, no triplets are possible.
Further,
if n is even, our triplets are calculated by formula if n is odd, our triplets are calculated by formula Proof:
Pythagoras Theorem can also be written as i.e a*a = (c-b)(c+b)
a*a x 1 = a*a, thus and , this solution works if n is odd.
For even solution, , thus, we get the above formula when n is even.

Code

## C++

 // CPP program to find Pythagoras triplet  // with one side as given number.  #include  using namespace std;     // Function, to evaluate the Pythagoras triplet  // with includes 'n' if possible  void evaluate(long long int n)  {         if (n == 1 || n == 2)          printf("No Pythagoras Triplet exists");         else if (n % 2 == 0) {             // Calculating for even case          long long int var = 1LL * n * n / 4;          printf("Pythagoras Triplets exist i.e. ");          printf("%lld %lld %lld", n, var - 1, var + 1);      }         else if (n % 2 != 0) {             // Calculating for odd case          long long int var = 1LL * n * n + 1;          printf("Pythagoras Triplets exist i.e. ");          printf("%lld %lld %lld", n, var / 2 - 1, var / 2);      }  }     // Driver function  int main()  {      long long int n = 22;      evaluate(n);      return 0;  }

## Java

 // Java program to find   // Pythagoras triplet   // with one side as   // given number.  import java.io.*;     class GFG  {         // Function, to evaluate   // the Pythagoras triplet  // with includes 'n' if   // possible  static void evaluate( int n)  {      if (n == 1 || n == 2)          System.out.println("No Pythagoras " +                              "Triplet exists");         else if (n % 2 == 0)       {             // Calculating for even case          int var = 1 * n * n / 4;          System.out.print("Pythagoras Triplets " +                                    "exist i.e. ");          System.out.print(n + " ");          System.out.print(var - 1+ " ");          System.out.println(var + 1 +" ");      }         else if (n % 2 != 0)       {             int var = 1 * n * n + 1;          System.out.print("Pythagoras Triplets " +                                     "exist i.e. ");          System.out.print(n + " ");          System.out.print(var / 2 - 1 + " ");          System.out.println(var / 2 + " ");      }  }     // Driver Code  public static void main(String[] args)   {      int n = 22;      evaluate(n);  }  }     // This code is contributed  // by ajit

## Python3

 # Python3 program to find   # Pythagoras triplet with   # one side as given number.     # Function, to evaluate the  # Pythagoras triplet with   # includes 'n' if possible  def evaluate(n):      if (n == 1 or n == 2):          print("No Pythagoras" +             " Triplet exists");      elif (n % 2 == 0):                     # Calculating for          # even case          var = n * n / 4;          print("Pythagoras Triplets" +              " exist i.e. ", end = "");          print(int(n), " ", int(var - 1),                        " ", int(var + 1));      elif (n % 2 != 0):                     # Calculating for odd case          var = n * n + 1;          print("Pythagoras Triplets " +               "exist i.e. ", end = "");          print(int(n), " ", int(var / 2 - 1),                           " ", int(var / 2));     # Driver Code  n = 22;  evaluate(n);     # This code is contributed by mits

## C#

 // C# program to find   // Pythagoras triplet   // with one side as   // given number.  using System;     class GFG  {         // Function, to evaluate   // the Pythagoras triplet  // with includes 'n' if   // possible  static void evaluate(int n)  {      if (n == 1 || n == 2)          Console.WriteLine("No Pythagoras " +                             "Triplet exists");             else if (n % 2 == 0)       {             // Calculating for even case          int var = 1 * n * n / 4;          Console.Write("Pythagoras Triplets " +                                 "exist i.e. ");          Console.Write(n + " ");          Console.Write(var - 1+ " ");          Console.WriteLine(var + 1 +" ");      }         else if (n % 2 != 0)       {          int var = 1 * n * n + 1;          Console.Write("Pythagoras Triplets " +                                  "exist i.e. ");          Console.Write(n + " ");          Console.Write(var / 2 - 1 + " ");          Console.WriteLine(var / 2 + " ");      }  }     // Driver Code  static public void Main ()  {      int n = 22;      evaluate(n);  }  }     // This code is contributed  // by ajit

## PHP

 

Output:

Pythagoras Triplets exist i.e. 22 120 122


My Personal Notes arrow_drop_up Waba Laba Dub Dub

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.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : Mihawk, jit_t, Mithun Kumar