Related Articles
Find the larger exponential among two exponentials
• Difficulty Level : Hard
• Last Updated : 10 May, 2021

Given four integers A, B, C and D. The task is to find which is greater AB or CD.

Examples:

Input: A = 2, B = 5, C = 4, D = 2
Output: 2^5
25 = 32
42 = 16

Input: A = 8, B = 29, C = 60, D = 59
Output: 60^59

Naive approach: Calculate the values of AB and CD then compare them. This approach will fail when the values are greater say 562145321457.

Efficient approach: Using log, we can write the terms as log(AB) and log(CD) which can also be written as B * log(A) and D * log(C). These values are easier to calculate and compare than the original values.

Below is the implementation of the above approach:

## C++

 `// C++ implementation of the approach` `#include``using` `namespace` `std;` `// Function to find whether a^b is greater or c^d``void` `compareValues(``int` `a, ``int` `b, ``int` `c, ``int` `d)``{` `    ``// Find b * log(a)``    ``double` `log1 = ``log10``(a);``    ``double` `num1 = log1 * b;` `    ``// Find d * log(c)``    ``double` `log2 = ``log10``(c);``    ``double` `num2 = log2 * d;` `    ``// Compare both values``    ``if` `(num1 > num2)``        ``cout << a  << ``"^"`  `<<  b;``    ``else``        ``cout << c << ``"^"` `<< d;``}` `// Driver code``int` `main ()``{``    ``int` `a = 8, b = 29, c = 60, d = 59;``    ``compareValues(a, b, c, d);``}`  `// This code is contributed by ihritik`

## Java

 `// Java implementation of the approach``class` `GFG {` `    ``// Function to find whether a^b is greater or c^d``    ``static` `void` `compareValues(``int` `a, ``int` `b, ``int` `c, ``int` `d)``    ``{` `        ``// Find b * log(a)``        ``double` `log1 = Math.log10(a);``        ``double` `num1 = log1 * b;` `        ``// Find d * log(c)``        ``double` `log2 = Math.log10(c);``        ``double` `num2 = log2 * d;` `        ``// Compare both values``        ``if` `(num1 > num2)``            ``System.out.println(a + ``"^"` `+ b);``        ``else``            ``System.out.println(c + ``"^"` `+ d);``    ``}` `    ``// Driver code``    ``public` `static` `void` `main(String[] args)``    ``{``        ``int` `a = ``8``, b = ``29``, c = ``60``, d = ``59``;``        ``compareValues(a, b, c, d);``    ``}``}`

## Python3

 `# Python3 implementation of the approach``import` `math` `# Function to find whether``# a^b is greater or c^d``def` `compareValues(a, b, c, d):``# Find b * log(a)``    ``log1 ``=` `math.log10(a)``    ``num1 ``=` `log1 ``*` `b` `    ``# Find d * log(c)``    ``log2 ``=` `math.log10(c)``    ``num2 ``=` `log2 ``*` `d` `    ``# Compare both values``    ``if` `num1 > num2 :``        ``print``(a, ``'^'``, b)``    ``else` `:``        ``print``(c, ``'^'``, d)` `# Driver code``a ``=` `8``b ``=` `29``c ``=` `60``d ``=` `59` `# Function call``compareValues(a, b, c, d)` `# This code is contributed by nidhiva`

## C#

 `// C# implementation of the approach``using` `System;` `class` `GFG``{` `    ``// Function to find whether``    ``// a^b is greater or c^d``    ``static` `void` `compareValues(``int` `a, ``int` `b,``                              ``int` `c, ``int` `d)``    ``{` `        ``// Find b * log(a)``        ``double` `log1 = Math.Log10(a);``        ``double` `num1 = log1 * b;` `        ``// Find d * log(c)``        ``double` `log2 = Math.Log10(c);``        ``double` `num2 = log2 * d;` `        ``// Compare both values``        ``if` `(num1 > num2)``            ``Console.WriteLine(a + ``"^"` `+ b);``        ``else``            ``Console.WriteLine(c + ``"^"` `+ d);``    ``}` `    ``// Driver code``    ``public` `static` `void` `Main ()``    ``{``        ``int` `a = 8, b = 29, c = 60, d = 59;``        ``compareValues(a, b, c, d);``    ``}``}` `// This code is contributed by ihritik`

## Javascript

 ``
Output:
`60^59`

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.

My Personal Notes arrow_drop_up