How can we use the chain rule to prove that if $f:\mathbb{R}^n\rightarrow\mathbb{R}$ and $c\in\mathbb{R}$ are such that $f(\lambda x) = \lambda^cf(x)\:\:\forall \lambda>0, x\in\mathbb{R}^n$, then $D_xf(x)=cf(x)\:\forall x\in\mathbb{R}^n$, and vice versa? (I'm using $D_xf$ to denote the derivative of $f$ at $x$, viewed as a linear map $\mathbb{R}^n\rightarrow\mathbb{R}$.)
I've found a proof not using the chain rule:
if $f$ homogeneous of degree $c$, then $f((1+\epsilon x)-f(x)=[c\epsilon+o(\epsilon)]f(x)\:$ as $\epsilon\rightarrow0$, so $D_xf(\epsilon x)=cf(x)\epsilon$. Conversely, if $D_xf(x)=cf(x)$, then the function $g_\lambda$ sending $x$ to $f(\lambda x)-\lambda^cf(x)$ is differentiable with derivative zero for all $\lambda$, and therefore identically zero.
But the past exam question asks for this to be shown "by means of the chain rule or otherwise". Would either direction of implication be quicker to prove using the chain rule, and if so, how?