Solving $f(x+y) = f(x)f(y)f(xy)$

Solution 1:

Note that if $f(x)=0$ for some $x$, then $f$ is constantly $0$, since $f(z)=f\left(x+\left(z-x\right)\right)$.

So proceed assuming that $f$ never outputs $0$. We have $$ \begin{align} f\left(\left(x+y\right)+z\right)&=f(x+y)\, f(z)\, f(xz+yz)\\ &=f(x)\,f(y)\,f(xy)\,f(z)\,f(xz)\,f(yz)\,f(xyz^2) \end{align}$$

But also $$ \begin{align} f\left(x+\left(y+z\right)\right)&=f(x)\, f(y+z)\, f(xy+xz)\\ &=f(x)\,f(y)\,f(z)\,f(yz)\,f(xy)\,f(xz)\,f(x^2yz) \end{align}$$

Since $f$ never outputs $0$, we can conclude that the following equation is identically true: $$f(x^2yz)=f(xyz^2)$$ In particular, with $z=1$, $$f(x^2y)=f(xy)$$ And if $x\neq0$, take $y=\frac{1}{x}$: $$f(x)=f(1)$$ So aside from at $x=0$, the function must be a constant $c=f(1)$. The original identity gives that $c=c^3$, so $c\in\{-1,0,1\}$. Even $f(0)$ must be this same constant, since for nonzero $x$ $$f(0)=f(x-x)=f(x)\,f(-x)\,f(-x^2)=c^3=c\text{.}$$ So continuity need not be assumed. This function is constant $-1$, $0$, or $1$ for all real numbers.