C++ Simple Solution for given range in O(1)
\na>2 and b>2 \na*b > a+b\n\nEvery number >=4 can be reduced to 2 and 3.\n\nAfter writing the maximum product for 7,8,9,10, we can see a pattern that, if for a 
\n**a>2 and b>2 \na*b > a+b**\n\nEvery number >=4 can be reduced to 2 and 3.\n\nAfter writing the maximum product for 7,8,9,10, we can see a pattern that, if for a given number maximum product exists and each of the maximum term can be decomposed to multiples of 2 and 3\n\nas we know for a product to be maximum the maximum number should be more number of times, in our case it is 3 so we try to maximise for no of 3s \n\nfor number like 13 we have to make a way around for it to fit, so we take 13%3==1, if some how we try to make this value even, so that we can take 2s according to it. A clear observation would give us that if we can add one three to it, it will make 2 two\'s, so :\nif n%3==1 we reduce our 3s and add it to 2s\nif n%3==2 we can take one 2\n\nfor 13:\n13/3=4\nwe have 4 3s  3,3,3,3 and 1 as stated above we convert this 1 to even by adding a 3\nso above coverts to 3,3,3 and 4 (2,2,)\n3,3,4 == 3,3,2,2 (2*2==4)\n\n\n\n\n```\n\nclass Solution {\npublic:\n    int integerBreak(int n) {\n        if(n==2)return 1;\n        if(n==3)return 2;\n        int two=0;\n        int three=n/3;\n        if(n%3==1)\n        {\n            three--;\n        }\n        two= (n-three*3)/2;\n        \n        return pow(3,three)*pow(2,two);\n        \n    }\n};\n```
['C']