Guess that won't work too well with larger numbers...
In [8]: math.log(math.exp(5000) * math.exp(6000))
---------------------------------------------------------------------------
OverflowError Traceback (most recent call last)
<ipython-input-8-3d6e46c58c45> in <module>()
----> 1 math.log(math.exp(5000) * math.exp(6000))
OverflowError: math range error
In [9]: math.log(math.exp(500) * math.exp(600))
Out[9]: inf >>> (Decimal(5000).exp() * Decimal(6000).exp()).ln()
Decimal('11000.00000000000000000000000')[1]: http://stackoverflow.com/questions/17342042/why-this-code-fo...
Really, the question should be 'add these two integers' and any solution that produces the result in a transparent and straightforward way should be honored with top marks.
Trick questions, especially those where only the interviewers pet solution is permitted are a sure sign that this employer is best avoided because they care about form and ego more than they care about getting the bloody job done.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in one_true_addition_test_case
AssertionError
The "correct" answer according to my pet parrot is (5).__add__(6). Of course, as per real-life, "correct" is usually just an aspect of if you find the interviewer's solution instead of whether your solution is actually correct. Better luck next time!