Why does $(1+x)^np(x)$ has at least $n+1$ terms? $p(x)$ is a polynomial. Assume $p(x)\ne0$. 
How to prove that $(1+x)^np(x)$ has at least $n+1$ terms?
Hint: Induction with differentiation to get to smaller step.
If p(x) is non-zero then it  contains at least one term in it. How many terms are in $(1+x)^n$? The binomial expansion will help here.