# Program to compare m^n and n^m

Given two positive integers **m** and **n**, the task is to write a program that checks whether m^n is greater than, less than or equal to n^m.**Examples :**

Input: m = 3, n = 10

Output: m^n > n^m

Explanation : 3^10=59049 which is greater than 10^3=1000

Input: m = 987654321, n = 123456987

Output: m^n < n^m

A **naive approach **is to compute m^n and n^m, which causes overflow when m and n are very large.

An **efficient approach** is to solve this problem using **log**.

Given LHS = m^n and RHS = n^m.

After taking log on both sides, LHS = n*log(m) and RHS = m*log(n)

Then compare the LHS and RHS.

## C++

`// CPP program to compare which is greater` `// m^n or n^m ` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// function to compare m^n and n^m` `void` `check(unsigned ` `long` `long` `m, unsigned ` `long` `long` `int` `n)` ` ` `{` ` ` `// m^n` ` ` `double` `RHS = m * (` `double` `)` `log` `(n);` ` ` ` ` `// n^m` ` ` `double` `LHS = n * (` `double` `)` `log` `(m);` ` ` ` ` `if` `( LHS > RHS )` ` ` `cout << ` `"m^n > n^m"` `;` ` ` ` ` `else` `if` `( LHS < RHS )` ` ` `cout << ` `"m^n < n^m"` `;` ` ` ` ` `else` ` ` `cout << ` `"m^n = n^m"` `;` ` ` `}` `// Drivers Code` `int` `main() {` ` ` ` ` `unsigned ` `long` `long` `m = 987654321, n = 123456987;` ` ` ` ` `// function call to compare m^n and n^m` ` ` `check(m, n);` ` ` ` ` `return` `0;` `}` |

## Java

`// Java program to compare which` `// is greater m^n or n^m` `import` `java .io.*;` `class` `GFG` `{` `// function to compare` `// m^n and n^m` `static` `void` `check(` `long` `m, ` `long` `n)` `{` ` ` `// m^n` ` ` `double` `RHS = m * (` `double` `)Math.log(n);` ` ` ` ` `// n^m` ` ` `double` `LHS = n * (` `double` `)Math.log(m);` ` ` ` ` `if` `(LHS > RHS)` ` ` `System.out.print(` `"m^n > n^m"` `);` ` ` ` ` `else` `if` `(LHS < RHS)` ` ` `System.out.print(` `"m^n < n^m"` `);` ` ` ` ` `else` ` ` `System.out.print(` `"m^n = n^m"` `);` `}` `// Driver Code` `static` `public` `void` `main (String[] args)` `{` ` ` `long` `m = ` `987654321` `, n = ` `123456987` `;` ` ` `// function call to` ` ` `// compare m^n and n^m` ` ` `check(m, n);` `}` `}` `// This code is contributed by anuj_67.` |

## Python3

`# Python3 program to compare` `# which is greater m^n or n^m` `import` `math` `# function to compare` `# m^n and n^m` `def` `check( m, n):` ` ` ` ` `# m^n` ` ` `RHS ` `=` `m ` `*` `math.log(n);` ` ` ` ` `# n^m` ` ` `LHS ` `=` `n ` `*` `math.log(m);` ` ` ` ` `if` `(LHS > RHS):` ` ` `print` `(` `"m^n > n^m"` `);` ` ` ` ` `elif` `(LHS < RHS):` ` ` `print` `(` `"m^n < n^m"` `);` ` ` ` ` `else` `:` ` ` `print` `(` `"m^n = n^m"` `);` `# Driver Code` `m ` `=` `987654321` `;` `n ` `=` `123456987` `;` `# function call to` `# compare m^n and n^m` `check(m, n);` `# This code is contributed by mits` |

## C#

`// C# program to compare which ` `// is greater m^n or n^m` `using` `System;` `class` `GFG` `{` `// function to compare` `// m^n and n^m` `static` `void` `check(` `ulong` `m, ` `ulong` `n)` `{` ` ` `// m^n` ` ` `double` `RHS = m * (` `double` `)Math.Log(n);` ` ` ` ` `// n^m` ` ` `double` `LHS = n * (` `double` `)Math.Log(m);` ` ` ` ` `if` `(LHS > RHS)` ` ` `Console.Write(` `"m^n > n^m"` `);` ` ` ` ` `else` `if` `(LHS < RHS)` ` ` `Console.Write(` `"m^n < n^m"` `);` ` ` ` ` `else` ` ` `Console.Write(` `"m^n = n^m"` `);` `}` `// Driver Code` `static` `public` `void` `Main ()` `{` ` ` `ulong` `m = 987654321, n = 123456987;` ` ` `// function call to` ` ` `// compare m^n and n^m` ` ` `check(m, n);` `}` `}` `// This code is contributed by anuj_67.` |

## PHP

`<?php` `// PHP program to compare ` `// which is greater m^n or n^m` `// function to compare` `// m^n and n^m` `function` `check( ` `$m` `, ` `$n` `)` `{` ` ` `// m^n` ` ` `$RHS` `= ` `$m` `* log(` `$n` `);` ` ` ` ` `// n^m` ` ` `$LHS` `= ` `$n` `* log(` `$m` `);` ` ` ` ` `if` `( ` `$LHS` `> ` `$RHS` `)` ` ` `echo` `"m^n > n^m"` `;` ` ` ` ` `else` `if` `( ` `$LHS` `< ` `$RHS` `)` ` ` `echo` `"m^n < n^m"` `;` ` ` ` ` `else` ` ` `echo` `"m^n = n^m"` `;` `}` `// Driver Code` `$m` `= 987654321;` `$n` `= 123456987;` `// function call to` `// compare m^n and n^m` `check(` `$m` `, ` `$n` `);` `// This code is contributed by anuj_67.` `?>` |

## Javascript

`<script>` `// javascript program to compare which` `// is greater m^n or n^m` `// function to compare` `// m^n and n^m` `function` `check( m, n)` `{` ` ` `// m^n` ` ` `var` `RHS = m * Math.log(n);` ` ` ` ` `// n^m` ` ` `var` `LHS = n * Math.log(m);` ` ` ` ` `if` `(LHS > RHS){` ` ` `document.write(` `"m^n > n^m"` `);` ` ` `}` ` ` `else` `if` `(LHS < RHS) {` ` ` `document.write(` `"m^n < n^m"` `);` ` ` `}` ` ` ` ` `else` `{` ` ` `document.write(` `"m^n = n^m"` `);` ` ` `}` `}` ` ` `// Driver Code` ` ` `var` `m = 987654321 ; ` ` ` `var` `n = 123456987;` ` ` ` ` `// function call to` ` ` `// compare m^n and n^m` ` ` `check(m, n);` ` ` `</script>` |

**Output :**

m^n < n^m

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the **DSA Self Paced Course** at a student-friendly price and become industry ready. To complete your preparation from learning a language to DS Algo and many more, please refer **Complete Interview Preparation Course****.**

In case you wish to attend **live classes **with experts, please refer **DSA Live Classes for Working Professionals **and **Competitive Programming Live for Students**.