Skip to content
Related Articles

Related Articles

Improve Article

Find x, y, z that satisfy 2/n = 1/x + 1/y + 1/z

  • Last Updated : 21 Apr, 2021
Geek Week

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>

Output: 

x is 7
y is 8
z is 56

Time complexity: O(1)
Alternate Solution 
We can write 2/n = 1/n + 1/n. And further as 2/n = 1/n + 1/2n + 1/2n.
 

Attention reader! All those who say programming isn’t for kids, just haven’t met the right mentors yet. Join the  Demo Class for First Step to Coding Coursespecifically designed for students of class 8 to 12. 

The students will get to learn more about the world of programming in these free classes which will definitely help them in making a wise career choice in the future.




My Personal Notes arrow_drop_up
Recommended Articles
Page :