Find all functions satisfying the condition $f(x+y)+f(x)f(y)=f(xy)+f(x)+f(y)$ Find all functions $f:\mathbb{R}\to{\mathbb{R}}$ such that 
$f(x+y)+f(x)f(y)=f(xy)+f(x)+f(y)$ for all $x,y\in{\mathbb{R}}$
first I put $x=y=0$ so I got $f(0)=0$ or $f(0)=2$.
For the case $f(0)=2$, putting $y=0$, I got $f(x)=2$ for all real $x$.
For the case $f(0)=0$ I am not able to proceed. Pre-calculus method is preferred. 
 A: Set $y = 1$ and you can get $f(x+1)$ expressed in terms of $f(x)$, therefore if you know $f(1)$ you know $f(n)$ for all $n \in \mathbb N$. 
As a few people already mentioned set $y=-x$ and you get $f(-n)$ in terms of $f(n)$ and $f(n^2)$, hence $f(1)$ determines $f(n)$ for all $n\in \mathbb Z$. 
I don't see the way to go from $\mathbb Z$ to $\mathbb Q$ or $\mathbb R$. I think you need to assume continuity at some point to get the final answer.
A: I claim that the only solutions of the functional equation
$$f(x+y)+f(x)f(y)=f(xy)+f(x)+f(y)\tag0\label0$$
are the identity function $f(x)=x$ and the constant functions $f(x)=0$ and $f(x)=2$. To show that, let $y=1$ in \eqref{0} and you'll get:
$$f(x+1)=\big(2-f(1)\big)f(x)+f(1)\tag1\label1$$
Substituting $x+1$ for $x$ in \eqref{1} we have:
$$f(x+2)=\big(2-f(1)\big)^2f(x)+3f(1)-f(1)^2$$
Letting $x=1$ in \eqref{1} we know that $f(2)=3f(1)-f(1)^2$, so using the last equation we get:
$$f(x+2)=\big(2-f(1)\big)^2f(x)+f(2)\tag2\label2$$
Now we can let $y=2$ in \eqref{0} and have:
$$f(2x)=f(x+2)-f(2)+\big(f(2)-1\big)f(x)$$
Thus knowing $f(2)=3f(1)-f(1)^2$ and using \eqref{2} we get:
$$f(2x)=\big(3-f(1)\big)f(x)\tag3\label3$$
Now, substituting $2x$ for $x$ and $2y$ for $y$ in \eqref{0}, and using \eqref{3} we find out that:
$$\big(3-f(1)\big)\Big(f(x+y)-f(x)-f(y)-\big(3-f(1)\big)\big(f(xy)-f(x)f(y)\big)\Big)=0$$
But by \eqref{0} we know that $f(x+y)-f(x)-f(y)=f(xy)-f(x)f(y)$ and thus:
$$\big(3-f(1)\big)\big(f(1)-2\big)\big(f(xy)-f(x)f(y)\big)=0\tag4\label4$$
If $f(1)=3$ then by \eqref{3} we must have $f(1)=0$ which leads to a contradiction, so this case doesn't happen. If $f(1)=2$ then by \eqref{1} we find out that $f$ is the constant function $f(x)=2$. Otherwise, by \eqref{4} we have $f(xy)=f(x)f(y)$ and hence by \eqref{0}, $f(x+y)=f(x)+f(y)$. It's well known that in this case $f$ is the identity function $f(x)=x$ or the constant function $f(x)=0$. For example, see here for a proof.
