Modulo and Double.
Go version of the solution:\nhttps://leetcode.com/problems/abbreviating-the-product-of-a-range/discuss/1647115/Modulo-and-Double\n\n\nfunc abbreviateProduct(lef
Go version of the solution:\nhttps://leetcode.com/problems/abbreviating-the-product-of-a-range/discuss/1647115/Modulo-and-Double\n\n```\nfunc abbreviateProduct(left int, right int) string {\n\tstuff, c, total, maxStuff := 1, 0, 0, 100000000000\n\tpref := 1.0\n\n\tfor i := left; i <= right; i++ {\n\t\tpref *= float64(i)\n\t\tstuff *= i\n\n\t\tfor pref >= 100000 {\n\t\t\tpref /= 10\n\t\t\tif total == 0 {\n\t\t\t\ttotal = 6\n\t\t\t} else {\n\t\t\t\ttotal++\n\t\t\t}\n\t\t}\n\n\t\tfor stuff%10 == 0 {\n\t\t\tstuff /= 10\n\t\t\tc++\n\t\t}\n\n\t\tstuff %= maxStuff\n\t}\n\n\ts := strconv.Itoa(stuff)\n\n\tres := strconv.Itoa(int(pref))\n\tif total-c > 10 {\n\t\tres += "..."\n\t}\n\tif total-c >= 5 {\n\t\tres += s[len(s)-min(5, total-c-5):]\n\t}\n\n\tres += "e" + strconv.Itoa(c)\n\n\treturn res\n}\n\nfunc min(a, b int) int {\n\tif a < b {\n\t\treturn a\n\t}\n\n\treturn b\n}\n```
['Go']