Related Articles

# Find larger of x^y and y^x

• Last Updated : 13 May, 2021

Given two integer numbers, X and Y. find the larger of X^Y and Y^X or determine if they are equal.

Examples:

Attention reader! Don’t stop learning now. Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price. To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.

```Input : 2 3
Output : 3^2
We know 3^2 = 9 and 2^3 = 8.

Input : 2 4
Output : Equal```

A simple solution is to calculate x^y by looping for y times, but if the values of x and y is too large it will cause overflow.
To solve the overflow problem, we can simplify the equation by taking the log.
log(x^y) = y* log(x)
Now, this equation will not cause overflow, and we can compare two values directly.

## C++

 `// C++ program to print greater of x^y and``// y^x``#include ``using` `namespace` `std;` `void` `printGreater(``double` `x, ``double` `y)``{``    ``long` `double` `X = y * ``log``(x);``    ``long` `double` `Y = x * ``log``(y);``    ``if` `(``abs``(X - Y) < 1e-9) {``        ``cout << ``"Equal"``;``    ``}``    ``else` `if` `(X > Y) {``        ``cout << x << ``"^"` `<< y;``    ``}``    ``else` `{``        ``cout << y << ``"^"` `<< x;``    ``}``}` `int` `main()``{``    ``double` `x = 5, y = 8;``    ``printGreater(x, y);``    ``return` `0;``}`

## Java

 `// Java program to print``// greater of x^y and y^x``import` `java.io.*;` `class` `GFG``{``static` `void` `printGreater(``int` `x,``                         ``int` `y)``{``    ``double` `X = y * Math.log(x);``    ``double` `Y = x * Math.log(y);``    ``if` `(Math.abs(X - Y) < 1e-``9``)``    ``{``        ``System.out.println(``"Equal"``);``    ``}``    ``else` `if` `(X > Y)``    ``{``        ``System.out.println(x + ``"^"` `+ y);``    ``}``    ``else``    ``{``        ``System.out.println(y + ``"^"` `+ x);``    ``}``}` `// Driver Code``public` `static` `void` `main (String[] args)``{``    ``int` `x = ``5``, y = ``8``;``    ``printGreater(x, y);``}``}` `// This code is contributed``// by anuj_67.`

## Python3

 `# Python3 program to print greater``# of x^y and y^x``import` `math` `def` `printGreater(x, y):` `    ``X ``=` `y ``*` `math.log(x);``    ``Y ``=` `x ``*` `math.log(y);``    ``if` `(``abs``(X ``-` `Y) < ``1e``-``9``):``        ``print``(``"Equal"``);``    ``elif` `(X > Y):``        ``print``(x, ``"^"``, y);``    ``else``:``        ``print``(y, ``"^"``, x);` `# Driver Code``x ``=` `5``;``y ``=` `8``;``printGreater(x, y);` `# This code is contributed by mits`

## C#

 `// C# program to print``// greater of x^y and y^x``using` `System;` `class` `GFG``{``static` `void` `printGreater(``int` `x,``                          ``int` `y)``{``    ``double` `X = y * Math.Log(x);``    ``double` `Y = x * Math.Log(y);``    ``if` `(Math.Abs(X - Y) < 1e-9)``    ``{``        ``Console.WriteLine(``"Equal"``);``    ``}``    ``else` `if` `(X > Y)``    ``{``        ``Console.WriteLine(x +``                          ``"^"` `+ y);``    ``}``    ``else``    ``{``        ``Console.WriteLine(y +``                          ``"^"` `+ x);``    ``}``}` `// Driver Code``public` `static` `void` `Main ()``{``    ``int` `x = 5, y = 8;``    ``printGreater(x, y);``}``}` `// This code is contributed``// by anuj_67.`

## PHP

 ` ``\$Y``)``    ``{``        ``echo` `\$x` `. ``"^"` `. ``\$y``;``    ``}``    ``else``    ``{``        ``echo` `\$y` `. ``"^"` `. ``\$x``;``    ``}``}` `// Driver Code``\$x` `= 5;``\$y` `= 8;``printGreater(``\$x``, ``\$y``);` `// This code is contributed by mits``?>`

## Javascript

 ``
Output:
`5^8`

My Personal Notes arrow_drop_up