Given a single integer n
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
For even solution,
Below is the implementation:
// CPP program to find Pythagoras triplet // with one side as given number. #include <bits/stdc++.h> 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 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 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# 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 // PHP program to find Pythagoras triplet // with one side as given number. // Function, to evaluate the // Pythagoras triplet with // includes 'n' if possible function evaluate( $n )
{ if ( $n == 1 || $n == 2)
echo "No Pythagoras Triplet exists" ;
else if ( $n % 2 == 0) {
// Calculating for even case
$var = $n * $n / 4;
echo "Pythagoras Triplets exist i.e. " ;
echo $n , " " , $var - 1, " " , $var + 1;
}
else if ( $n % 2 != 0) {
// Calculating for odd case
$var = $n * $n + 1;
echo "Pythagoras Triplets exist i.e. " ;
echo $n , " " , $var / 2 - 1, " " , $var / 2;
}
} // Driver Code
$n = 22;
evaluate( $n );
// This code is contributed by ajit ?> |
<script> // Javascript program to find
// Pythagoras triplet
// with one side as
// given number.
// Function, to evaluate
// the Pythagoras triplet
// with includes 'n' if
// possible
function evaluate(n)
{
if (n == 1 || n == 2)
document.write( "No Pythagoras Triplet exists" );
else if (n % 2 == 0)
{
// Calculating for even case
let Var = 1 * n * n / 4;
document.write( "Pythagoras Triplets " +
"exist i.e. " );
document.write(n + " " );
document.write(Var - 1+ " " );
document.write(Var + 1 + " " );
}
else if (n % 2 != 0)
{
let Var = 1 * n * n + 1;
document.write( "Pythagoras Triplets " +
"exist i.e. " );
document.write(n + " " );
document.write(parseInt(Var / 2, 10) - 1 + " " );
document.write(parseInt(Var / 2, 10) + " " );
}
}
let n = 22;
evaluate(n);
</script> |
Output
Pythagoras Triplets exist i.e. 22 120 122
Time Complexity: O(1)
Auxiliary Space: O(1)