Setting y=0 gives
f2(x)f(0)+f(0)2f(2x)=2f2(x)f(0).
Thus f(2x)=f(0)f2(x),f(2y)=f(0)f2(y).(1)
Substituting (1) into the given condition, we get
f(x)f(y)(f(x)f(y)−f(0)f(x+y))=0.(2)
From (2) and f(x)=0,f(y)=0, we get
f(x)f(y)−f(0)f(x+y)=0(3)
Let g(x)=f(0)f(x); then from (3) we know
g(x+y)=g(x)g(y).(4)
From (4) and mathematical induction, we obtain
g(nx)=(g(x))n, for any positive integer n.(5)
In (5), setting x=1,x=nm, we get
g(n)=(g(1))n,(6)
g(m)=(g(nm))n.(7)
From (4) we know
g(x)=(g(2x))2>0, for any rational number x.(8)
g(nm)=(g(1))nm, for any positive integers m,n.(9)
Also, g(0)=f(0)f(0)=1, so from (4) we get
g(−nm)=g(nm)g(0)=(g(1))−nm.(10)
From g(0)=1 and equations (9), (10) we know
g(x)=(g(1))x, for any rational number x.(11)
From equation (11) and g(x)=f(0)f(x), we thus know
f(x)=f(0)(f(0)f(1))x, for any rational number x.(12)
Let b=f(0)=0, c=f(0)f(1); equation (12) becomes f(x)=bcx, for any rational number x. Verification shows that f(x)=bcx (b=0,c>0) satisfies the given condition.
Hence the desired f(x)=bcx (b=0,c>0,b,c are constants).