Given n, find x, y, z such that x, y, z satisfy the equation “2/n = 1/x + 1/y + 1/z”
There are multiple x, y and z that satisfy the equation print anyone of them, if not possible then print -1.
Examples:
Input : 3 Output : 3 4 12 Explanation: here 3 4 and 12 satisfy the given equation Input : 7 Output : 7 8 56
Note that for n = 1 there is no solution, and for n > 1 there is solution x = n, y = n+1, z = n·(n+1).
To come to this solution, represent 2/n as 1/n+1/n and reduce the problem to represent 1/n as a sum of two fractions. Let’s find the difference between 1/n and 1/(n+1) and get a fraction 1/(n*(n+1)), so the solution is
2/n = 1/n + 1/(n+1) + 1/(n*(n+1))
// CPP program to find x y z that // satisfies 2/n = 1/x + 1/y + 1/z... #include <bits/stdc++.h> using namespace std;
// function to find x y and z that // satisfy given equation. void printXYZ( int n)
{ if (n == 1)
cout << -1;
else
cout << "x is " << n << "\ny is "
<< n + 1 << "\nz is "
<< n * (n + 1);
} // driver program to test the above function int main()
{ int n = 7;
printXYZ(n);
return 0;
} |
// Java program to find x y z that // satisfies 2/n = 1/x + 1/y + 1/z... import java.io.*;
class Sums {
// function to find x y and z that
// satisfy given equation.
static void printXYZ( int n){
if (n == 1 )
System.out.println(- 1 );
else {
System.out.println( "x is " + n);
System.out.println( "y is " + (n+ 1 ));
System.out.println( "z is " + (n * (n + 1 )));
}
}
// Driver program to test the above function
public static void main (String[] args) {
int n = 7 ;
printXYZ(n);
}
} // This code is contributed by Chinmoy Lenka |
# Python3 code to find x y z that # satisfies 2/n = 1/x + 1/y + 1/z... # function to find x y and z that # satisfy given equation. def printXYZ( n ):
if n = = 1 :
print ( - 1 )
else :
print ( "x is " , n )
print ( "y is " ,n + 1 )
print ( "z is " ,n * (n + 1 ))
# driver code to test the above function n = 7
printXYZ(n) # This code is contributed by "Sharad_Bhardwaj". |
// C# program to find x y z that // satisfies 2/n = 1/x + 1/y + 1/z... using System;
class GFG
{ // function to find x y and z that
// satisfy given equation.
static void printXYZ( int n)
{
if (n == 1)
Console.WriteLine(-1);
else
{
Console.WriteLine( "x is " + n);
Console.WriteLine( "y is " + (n+1));
Console.WriteLine( "z is " + (n * (n + 1)));
}
}
// Driver program
public static void Main ()
{
int n = 7;
printXYZ(n);
}
} // This code is contributed by vt_m |
<?php // PHP program to find x y z that // satisfies 2/n = 1/x + 1/y + 1/z... // function to find x y and z that // satisfy given equation. function printXYZ( $n )
{ if ( $n == 1)
echo -1;
else
echo "x is " , $n , "\ny is "
, $n + 1 , "\nz is " ,
$n * ( $n + 1);
} // Driver Code
$n = 7;
printXYZ( $n );
// This code is contributed by anuj_67. ?> |
<script> // Javascript program to find x y z that // satisfies 2/n = 1/x + 1/y + 1/z... // function to find x y and z that // satisfy given equation. function printXYZ(n)
{ if (n == 1)
document.write(-1);
else
document.write( "x is " + n + "<br>y is "
+ (n + 1) + "<br>z is "
+ n * (n + 1));
} // driver program to test the above function let n = 7;
printXYZ(n);
</script> |
x is 7 y is 8 z is 56
Time Complexity: O(1)
Auxiliary Space: O(1)
Alternate Solution
We can write 2/n = 1/n + 1/n. And further as 2/n = 1/n + 1/2n + 1/2n.
so here x = n, y = 2*n and z = 2*n
Below is the code implementation for the alternate solution
// CPP program to find x y z that satisfies 2/n = 1/x + 1/y + 1/z... #include <bits/stdc++.h> using namespace std;
// function to find x, y and z that satisfy given equation. void printXYZ( int n)
{ if (n == 1)
cout << -1;
else
cout << "x is " << n << "\ny is " << 2 * n
<< "\nz is " << 2 * n;
} // driver program to test the above function int main()
{ int n = 7;
printXYZ(n);
return 0;
} |
// Java program to find x y z that satisfies 2/n = 1/x + 1/y + 1/z... import java.io.*;
class GFG {
// function to find x, y and z that satisfy given equation.
public static void printXYZ( int n) {
if (n == 1 )
System.out.println( "-1" );
else
System.out.println( "x is " + n + "\ny is " + 2 * n +
"\nz is " + 2 * n);
}
// driver program to test the above function
public static void main(String[] args) {
int n = 7 ;
printXYZ(n);
}
} |
// C# program to find x y z that satisfies 2/n = 1/x + 1/y + 1/z... using System;
using System.Linq;
using System.Collections.Generic;
class GFG {
// function to find x, y and z that satisfy given equation.
static void printXYZ( int n)
{
if (n == 1)
Console.Write(-1);
else
Console.Write( "x is " + n + "\ny is " + 2 * n
+ "\nz is " + 2 * n);
}
// driver program to test the above function
static public void Main()
{
int n = 7;
printXYZ(n);
}
} // This code is contributed by ratiagrawal. |
// Javascript program to find x y z that satisfies 2/n = 1/x + 1/y + 1/z... // function to find x, y and z that satisfy given equation. function printXYZ( n)
{ if (n == 1)
console.log(-1);
else
console.log( "x is " + n + "\ny is " + 2 * n
+ "\nz is " + 2 * n);
} // driver program to test the above function let n = 7; printXYZ(n); |
# Python program to find x y z that satisfies 2/n = 1/x + 1/y + 1/z... # function to find x, y and z that satisfy given equation. def printXYZ(n):
if n = = 1 :
print ( "-1" )
else :
print (f "x is {n}\ny is {2 * n}\nz is {2 * n}" )
# driver program to test the above function if __name__ = = '__main__' :
n = 7
printXYZ(n)
#This code is contributed by chinmaya121221 |
x is 7 y is 14 z is 14
Time Complexity: O(1)
Auxiliary Space: O(1)