(m)
| 20 | xrange = range #Python 3 |
| 21 | |
| 22 | def partition(m): |
| 23 | memo = [[0 for _ in xrange(m)] for _ in xrange(m+1)] |
| 24 | for i in xrange(m+1): |
| 25 | memo[i][0] = 1 |
| 26 | |
| 27 | for n in xrange(m+1): |
| 28 | for k in xrange(1, m): |
| 29 | memo[n][k] += memo[n][k-1] |
| 30 | if n > k: |
| 31 | memo[n][k] += memo[n-k-1][k] |
| 32 | |
| 33 | return (memo[m][m-1] - 1) |
| 34 | |
| 35 | print(partition(100)) |