Nice catch, but then:
In [13]: Decimal(5000000).exp() * Decimal(5000000).exp()
---------------------------------------------------------------------------
Overflow Traceback (most recent call last)
<ipython-input-13-8333724ae893> in <module>()
----> 1 Decimal(5000000).exp() * Decimal(5000000).exp()
Overflow: [<class 'decimal.Overflow'>]
The problem is that the multiplication blows the precision of the used format (either double for math.log(...) or the one the decimal module uses).
I had also thought about the intention of the question trying to get you to express the sum as bit operations (thought I admit that sounds like going for a very low-level profile), or maybe just "thinking outside the box".