Given an integer C, the task is to find all possible pairs (A, B) in range [1, C) such that:
- A2 + B2 = C2
- A < B
Examples:
Input: C = 5
Output:(3, 4)
Explanation:
(3)2 + (4)2 = 9 + 16 = 25 = 52Input: C = 25
Output:(15, 20), (7, 24)
Explanation: Both the pairs satisfy the necessary conditions.
Approach:
- Check all possible values of A and B in the range [1, C).
- Store all pair that satisfies the given conditions.
Below is the implementation of the above approach:
C++
// C++ program to compute // all the possible // pairs that forms a // pythagorean triple // with a given value #include <bits/stdc++.h> using namespace std;
// Function to generate all // possible pairs vector<pair< int , int > > Pairs( int C)
{ // Vector to store all the
// possible pairs
vector<pair< int , int > > ans;
// Checking all the possible
// pair in the range of [1, c)
for ( int i = 1; i < C; i++) {
for ( int j = i + 1; j < C;
j++) {
// If the pair satisfies
// the condition push it
// in the vector
if ((i * i) + (j * j) == (C * C)) {
ans.push_back(make_pair(i, j));
}
}
}
return ans;
} // Driver Program int main()
{ int C = 13;
vector<pair< int , int > > ans
= Pairs(C);
// If no valid pair exist
if (ans.size() == 0) {
cout << "No valid pair exist"
<< endl;
return 0;
}
// Print all valid pairs
for ( auto i = ans.begin();
i != ans.end(); i++) {
cout << "(" << i->first << ", "
<< i->second << ")" << endl;
}
return 0;
} |
Java
// Java program to compute all // the possible pairs that forms // a pythagorean triple with a // given value import java.util.*;
class GFG{
static class pair
{ int first, second;
public pair( int first, int second)
{
this .first = first;
this .second = second;
}
} // Function to generate all // possible pairs static Vector<pair> Pairs( int C)
{ // Vector to store all the
// possible pairs
Vector<pair> ans = new Vector<pair>();
// Checking all the possible
// pair in the range of [1, c)
for ( int i = 1 ; i < C; i++)
{
for ( int j = i + 1 ; j < C; j++)
{
// If the pair satisfies
// the condition push it
// in the vector
if ((i * i) + (j * j) == (C * C))
{
ans.add( new pair(i, j));
}
}
}
return ans;
} // Driver code public static void main(String[] args)
{ int C = 13 ;
Vector<pair> ans = Pairs(C);
// If no valid pair exist
if (ans.size() == 0 )
{
System.out.print( "No valid pair " +
"exist" + "\n" );
return ;
}
// Print all valid pairs
for (pair i:ans)
{
System.out.print( "(" + i.first +
", " + i.second +
")" + "\n" );
}
} } // This code is contributed by gauravrajput1 |
Python3
# Python3 program to compute all # the possible pairs that forms a # pythagorean triple with a given value # Function to generate all # possible pairs def Pairs(C):
# Vector to store all the
# possible pairs
ans = []
# Checking all the possible
# pair in the range of [1, c)
for i in range (C):
for j in range (i + 1 , C):
# If the pair satisfies
# the condition push it
# in the vector
if ((i * i) + (j * j) = = (C * C)):
ans.append([i, j])
return ans;
# Driver code if __name__ = = "__main__" :
C = 13 ;
ans = Pairs(C);
# If no valid pair exist
if ( len (ans) = = 0 ):
print ( "No valid pair exist" )
exit()
# Print all valid pairs
for i in range ( len (ans)):
print ( "(" + str (ans[i][ 0 ]) +
", " + str (ans[i][ 1 ]) + ")" )
# This code is contributed by rutvik_56 |
C#
// C# program to compute all // the possible pairs that forms // a pythagorean triple with a // given value using System;
using System.Collections.Generic;
class GFG{
class pair
{ public int first, second;
public pair( int first, int second)
{
this .first = first;
this .second = second;
}
} // Function to generate all // possible pairs static List<pair> Pairs( int C)
{ // List to store all the
// possible pairs
List<pair> ans = new List<pair>();
// Checking all the possible
// pair in the range of [1, c)
for ( int i = 1; i < C; i++)
{
for ( int j = i + 1; j < C; j++)
{
// If the pair satisfies
// the condition push it
// in the vector
if ((i * i) + (j * j) == (C * C))
{
ans.Add( new pair(i, j));
}
}
}
return ans;
} // Driver code public static void Main(String[] args)
{ int C = 13;
List<pair> ans = Pairs(C);
// If no valid pair exist
if (ans.Count == 0)
{
Console.Write( "No valid pair " +
"exist" + "\n" );
return ;
}
// Print all valid pairs
foreach (pair i in ans)
{
Console.Write( "(" + i.first +
", " + i.second +
")" + "\n" );
}
} } // This code is contributed by PrinciRaj1992 |
Javascript
<script> // Javascript program to compute // all the possible // pairs that forms a // pythagorean triple // with a given value // Function to generate all // possible pairs function Pairs(C)
{ // Vector to store all the
// possible pairs
var ans = [];
// Checking all the possible
// pair in the range of [1, c)
for ( var i = 1; i < C; i++) {
for ( var j = i + 1; j < C;
j++) {
// If the pair satisfies
// the condition push it
// in the vector
if ((i * i) + (j * j) == (C * C)) {
ans.push([i, j]);
}
}
}
return ans;
} // Driver Program var C = 13;
var ans
= Pairs(C);
// If no valid pair exist if (ans.length == 0) {
document.write( "No valid pair exist<br>" );
} // Print all valid pairs ans.forEach(x => { document.write( "(" + x[0] + ", "
+ x[1] + ")" + "<br>" );
}); // This code is contributed by noob2000. </script> |
Output:
(5, 12)
Time Complexity: O(C2)