m={} def p(k,n): l=k,n if k>=n:return k==n if l in m:return m[l] r=m[l]=p(k+1,n)+p(k,n-k) return r i=1 while i<101:print"p(%d)=%d"%(i,p(1,i));i+=1