If g(x)=1/f(x) then g:Q+→R+ and the given equation becomes
(∗)g(x+y)g(x)g(y)=g(xy)(g(x)+g(y)).
Let f(1)=c>0 i.e. g(1)=c1. From (*) we get g(x+1)=cg(x)+1 and hence g(2)=2, g(3)=2c+1, g(4)=2c2+c+1, g(5)=2c3+c2+c+1, g(6)=2c4+c3+c2+c+1. On the other hand setting x=2, y=3 in (*) leads us to
g(5)g(2)g(3)=g(6)(g(2)+g(3)),
which implies
4c5−3c3−c2−c+1=0⇔(c−1)(c+1)(2c−1)(2c2+2c+1)=0.
If c=1 then g(x+1)=g(x)+1. By induction g(n)=n for any n∈N and moreover g(x+n)=g(x)+n for any x∈Q+ and n∈N.
By setting y=n in (*) we obtain
(g(x)+n)g(x)n=g(nx)(g(x)+n),
i.e. g(nx)=ng(x). Setting x=p/q and n=q, where p,q∈N we obtain g(x)=x, for any x∈Q+, i.e. f(x)=1/x, for any x∈Q+.
If c=21 then g(x+1)=21g(x)+1. Hence
g(n)=2andg(x+n)−2=2ng(x)−2,x∈Q+,n∈N;
Setting y=n in (∗) we obtain
2g(x+n)g(x)=g(nx)(g(x)+2),
and it's sufficient to see that these equations imply g(x)=2, for any x∈Q+, i.e. f≡1/2.
Finally, the only functions satisfying the given equality are f≡21 and f≡x1.