# Calculate a^b - b^a

Calculate the value of a^b - b^a .

Range : 1 <= a , b <= 100.

This can easily be done in python but I need a solution using C++?

What should I do to avoid overflow. ( Cannot use MOD also ).

Implementing BigInteger library yourself seems to be the only option

Yes :-/
Any other suggestion ? Anyone ?

Nothing else is possible except taking then in a char array and doing multiplication and subtraction by your own methodâ€¦ Because letâ€™s say inputs are
2 100
Then â€śanswerâ€ť(i.e. 2^100 - 100^2 )may even exceed limit of long long intâ€¦ Hence it is not possible to store it in anything except char arrayâ€¦ Hence I think this is the only solutionâ€¦

As said by @vijju123

@guitarlover you can use Boost C++'s Boost Multiprecision(http://www.boost.org/doc/libs/1_53_0/libs/multiprecision/doc/html/index.html) but then again, to the best of my knowledge Boost is not supported on OJâ€™s so you have no option other than what @l_returns mentioned. If you want to avoid boilerplate code, look at : https://github.com/connormanning/little-big-int

Donâ€™t do it in a char array, thatâ€™s just a bad idea. I would recommend picking some large base (you could easily do base 2^{32} if you wanted to) and then compute using that on an array of integers (exact size depending on your base). You can easily work in huge numbers with comparatively few digits that way.

4 Likes

As mentioned I created 2 arrays with which stores the sum of a^b and b^a.
Then I subtracted one array from the other.
Sounds little weird.

** Here is my AC Solution ( C++ ) **

Got AC with array of integers.