Observation Based Solution. No maths required.
Intuition\n Describe your first thoughts on how to solve this problem. \nFrom 2 to 6, if we calculate the answer, it is not difficult to observe that answer to 
# Intuition\n<!-- Describe your first thoughts on how to solve this problem. -->\nFrom 2 to 6, if we calculate the answer, it is not difficult to observe that answer to n is 3*(answer to n-3)\n\n\n# Approach\n<!-- Describe your approach to solving the problem. -->\ndp[0] - dp[6] calculate the values.\nafter that , dp[i] = dp[i-3]*3;\n\nWhy? I have no idea. It just works and I don\'t want to get deep into mathematics. On calculating answers upto 10, I was able to come up with this transition.\n\n\n# Complexity\n- Time complexity: O(N)\n<!-- Add your time complexity here, e.g. $$O(n)$$ -->\n\n- Space complexity:O(N)\n<!-- Add your space complexity here, e.g. $$O(n)$$ -->\n\n# Code\n```\nclass Solution {\npublic:\n    int integerBreak(int n) {\n        int dp[60];\n        dp[2] = 1;\n        dp[3] = 2;\n        dp[4] = 4;\n        dp[5] = 6;\n        dp[6] = 9;\n        for(int i = 7; i <= 58; i++){\n            dp[i] = dp[i-3] * 3;\n        }\n        for(auto i : dp){\n            cout<< i<<" ";\n        }\n        return dp[n];\n\n\n    }\n};\n```
['Dynamic Programming', 'C++']