# Find all functions $f:\Bbb{R} \to \Bbb{R}$ such that for all $x,y,z \in \Bbb{R}$ , $f(f(x)+yz)=x+f(y)f(z)$

Find all functions $$f:\Bbb{R} \to \Bbb{R}$$ such that for all $$x,y,z \in \Bbb{R}$$ , $$f(f(x)+yz)=x+f(y)f(z)$$

I was told to do this by proving $$f$$ is injective and surjective. I have proved it this way : setting $$y=z=0$$, and then $$f(f(x))=x+f^2(0)$$. For any $$b \in \Bbb{R}$$, $$x+f^2(0)=b$$ has a solution ,then $$f(f(x))=b$$ has a solution and it follows that $$f$$ is surjective. For $$f(x)=f(y)$$, $$f(f(x))=f(f(y))$$, so $$x+f^2(0)=y+f^2(0)$$ , so $$x=y$$. That's $$f$$ is injective. But how to find $$f$$ , I have no idea.

Substitute $$(x,y,z)=(0,0,1),$$ then $$x=z=0$$. We obtain $$f(f(0))=f(0)f(1)$$ and $$f(f(0))=f(y)f(0)$$. Hence for $$f(0)\neq 0$$, $$f(y)=f(1)$$ for all $$y$$. Let $$f(1)=c$$ since it's constant. Substituting this into our original equation shows $$c=x+c^2$$ which is obviously not true for all $$x$$. Hence $$f(0)=0$$.
Substituting $$x=0$$ we find $$f(yz)=f(y)f(z)$$ so that $$f$$ is multiplicative. Now substitute $$y=z=0$$ to show $$f(f(x))=x$$. Hence if we substitute $$x\to f(x)$$ we find $$f(x+yz)=f(x)+f(y)f(z)=f(x)+f(yz)$$ so that $$f$$ is both multiplicative and additive. Thus $$f(x)=x$$ or $$f(x)=0$$. Checking both of these shows that the only such function satisfiying the given equation is $$f(x)=x$$.