Find x, y, z that satisfy 2/n = 1/x + 1/y + 1/z
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))
C++
// 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
// 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
# 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#
// 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 // 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. ?> |
Javascript
<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
C++
// 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
// 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#
// 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
// 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); |
Python3
# 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)
Please Login to comment...