Another solutionReplacing y with xy and a bit of manipulation, we get: \n\n
2xy=f(x+y)−f(x)−f(x)f(xy)…(1)
\n\nIn particular, f(x+y)>f(x) for all x,y∈Q+ , so f is strictly increasing and thus injective. Intertwining between x and y gives us f(x)+f(x)f(xy)=f(y)+f(y)f(xy) . Solving this gives us f(xy)=f(x)f(y) whenever x=y (as f is injective). To generalize this result, notice that f(1)f(2)=f(2) so f(1)=1 , and for x=1 ,: \n\n
f(x3)f(x2)=f(x5)=f(x4)f(x)=f(x3)f(x)2
\n\nHence, f(x2)=f(x)2 , so indeed f(xy)=f(x)f(y) for all x,y∈Q . Equation (1) now becomes: \n\n
2xy=f(x+y)−f(x)−f(y)
(f(x+y)−(x+y)2)−(f(x)−x2)−(f(y)−y2)=0
\n\nso the function x↦(f(x)−x2) is additive. Since it's domain is Q+ , it must be linear; there exists a rational number c such that f(x)=x2+cx=x(x+c) for all x∈Q+ . Since we obtained f(1)=1 , this means c=0 , so f(x)=x2∀x∈Q+ .