1. class Solution {
    2. public:
    3. int integerBreak(int n) {
    4. vector<int> dp(n+1, 1);
    5. for(int i = 3; i<= n;i++){
    6. for(int j = 1; j< i;j++){
    7. dp[i] = max(max(dp[i], dp[i - j] * j % 1000000007), (i - j) * j % 1000000007);
    8. }
    9. }
    10. return dp[n] % 1000000007;
    11. }
    12. };