Let $A$ be an $m \times n$ matrix. Let $p$ be the smallest integer so that $A=BC$ for some $m \times p$ matrix $B$ and some $p \times n$ matrix $C$.
I want to show that $\operatorname{rank}(A)=p$.
My attempt:
Take $v \in \operatorname{Col}(A)$, where $\operatorname{Col}(A)$ denotes the column space of $A$. So $v=Ax$ for some $x$. This implies that $v=BCx=B(Cx) \in \operatorname{Col}(B)$. Thus $\operatorname{rank}(A) \leq \operatorname{rank}(B) \leq p$.
I guess I now need to show that $\operatorname{rank}(A) \geq p$, I'm not sure how to do this though.