Serge Lang has given a proof of the factor theorem of polynomial functions in his chapter on functions (Chapter 13). The statement of the theorem and the proof is as follows:
Theorem:
Let $f$ be a polynomial of degree $\leqslant n$ and let $c$ be a root. Then there exists a polynomial $g$ of degree $\leqslant n — 1$ such that for all numbers $x$ we have
$f(x)=(x - c)g(x)$.
Proof:
Write
$f(x)=a_{0}+a_{1}x+a_{2}x^2+...+a_{n}x^n$.
Substitute the value
$x=(x —c)+c$
for $x$. Each $k$-th power, for $k = 0,...,n$, of the form
$((x-c)+c)^k$
can be expanded out as a sum of powers of $(x—c)$ times a number. Hence there exist numbers $b_{0}, b_{1},..., b_{n}$ such that
$f(x)=b_{0}+b_{1}(x-c)+b_{2}(x-c)^2+...+b_{n}(x-c)^n$,
for all $x$. But $f(c)=0$. Hence
$0=f(c)=b_{0}$,
and all the other terms on the right have the value $0$ for $x=c$. This proves that $b_{0}=0$. But then we can factor
$f(x)=(x-c)(b_{1}+b_{2}(x-c)+...+b_{n}(x-c)^{n-1} $
We let
$g(x)=b_{1}+b_{2}(x-c)+...+b_{n}(x-c)^{n-1}$,
and we see that our theorem is proved.
I am unable to grasp how
$((x-c)+c)^k$
can be expanded out as a sum of powers of $(x—c)$ times a number.
Binomial theorem: $$(A + B)^k = \sum_{p=0}^k C(k, p)A^p B^{k-p},$$ and substitute in $A = (x - c)$, $B = c$.