Straightforward Python 3 solution (beats 98.29% on memory)
Hope this helps...\n\n\'\'\'\nclass Solution:\n    def abbreviateProduct(self, left: int, right: int) -> str:\n\t\n        product = 1\n        \n        #Since
Hope this helps...\n\n\'\'\'\nclass Solution:\n    def abbreviateProduct(self, left: int, right: int) -> str:\n\t\n        product = 1\n        \n        #Since trailing zeros come from 2*5 ultimately...\n        two_count = 0\n        five_count = 0\n\n        for i in range(left, right+1):\n            \n            #Filter all 2s and 5s:\n            while i%2 == 0:\n                i = i//2\n                two_count += 1\n            while i%5 == 0:\n                i = i//5\n                five_count += 1\n            \n            #Do the math on the rest\n            product *= i\n\n        #Whichever smaller is the pairs of 2*5 we have\n        trailing_zeros = min(two_count, five_count)\n\n        two_count -= trailing_zeros\n        five_count -= trailing_zeros\n        \n        #Multiply the "unused 2s or 5s"\n        if two_count > 0:\n            product *= 2 ** two_count\n        elif five_count > 0:\n            product *= 5 ** five_count\n        \n        #Format as instructed\n        if product > 9999999999:\n            product = str(product)[:5] +"..."+ str(product)[-5:]\n\n        product = str(product)+"e"+str(trailing_zeros)\n\n        return(product)\n\'\'\'
[]