Open In App

# Generate a pythagoras triplet from a single integer

Given a single integer n [1, 1000000000], generate a Pythagoras triplet that includes n as one of its 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


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’s 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.

Below is the implementation:

## 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 possiblevoid 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 functionint 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 // possiblestatic 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 Codepublic 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 possibledef 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 Coden = 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 // possiblestatic 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 Codestatic public void Main (){    int n = 22;    evaluate(n);}}  // This code is contributed// by ajit

## PHP

 

## Javascript

 

Output

Pythagoras Triplets exist i.e. 22 120 122

Time Complexity: O(1)
Auxiliary Space: O(1)