If a function $f(x)$ satisfies $f(f(x))=xf(x)+a$, how many roots does it have? Question:

Given a real number $a\neq 0$, and a function
  $f:R\to R$ which satisfies
  $$f(f(x))=xf(x)+a$$
   How many $x$ are there such that $f(x)=0$?

A:0 
B:1
C:2
D:3
I guess this answer is A, but I can't prove it.
 A: Suppose that $f:\mathbb{R}\to\mathbb{R}$ satisfies the functional equation $f(f(x)) = xf(x) + a$ for $a \neq 0$. Then we have that if $r$ is a root of $f$,
$$f(0) = f(f(r)) = rf(r) + a = a$$
Then by applying our functional equation again,
$$f(a) = f(f(0)) = 0f(0) + a = a$$
Thus $f(f(a)) = f(a)$. But we have from a third application of our functional formula,
$$f(a) = f(f(a)) = af(a) + a = a^2 + a$$
which implies that $a^2 + a = a$, so $a = 0$. This is a contradiction! Thus if $f$ satisfies the given functional equation, no such $r$ can exist.
A: If there exists an $x'$ such that $f(x') = 0$, then $$f(0) = x'.0 + a \Longrightarrow f(0) = a$$ But in that case, substituting $x = 0$,
$$f(a) = 0 + a = a$$ Substituting now $x = a$, $f(a) = a^2 + a$; thus $a^2 + a = a$ or $a = 0$, contradicting the original hypothesis that $a \neq 0$.
A: **Hint : 
Suppose $f(x)=0$ for a certain $x$,
then $$f(0)=f(f(x))=x\underbrace{f(x)}_{=0}+a=a$$
Moreover, $$f(f(0))=f(a)=0\cdot f(x)+a\implies f(a)=a,$$
and so,
$$f(0)=a=f(a)\implies f(f(0))=f(f(a))\implies a=a(f(a)+1)\underbrace{\implies}_{because\ a\neq 0} f(a)+1=1\implies f(a)=0$$
Then, we have
$$a=f(a)=0$$
which is a contradiction.
