Put c=1 in the given condition, we have
f(ab+a+b)=f(a)f(b)+f(a)f(1)+f(b)f(1);∀a,b∈Q+,(1)
Put b=3 into (1), we have
f(4a+3)=f(a)f(3)+f(a)f(1)+f(3)f(1);∀a∈Q+.
Put b=1 into (1), we have
f(2a+1)=2f(a)f(1)+f(1)2;∀a∈Q+.
Thus
f(4a+3)=2f(2a+1)f(1)+f(1)2=4f(1)2f(a)+2f(1)3+f(1)2;∀a∈Q+.
From these, we can conclude that
[f(3)+f(1)]f(a)+f(3)f(1)=4f(1)2f(a)+2f(1)3+f(1)2;∀a∈Q+.
If f(3)+f(1)=4f(1)2 then f is constant. Thus f(3)+f(1)=4f(1)2, otherwise f will be constant. So we must have
f(3)+f(1)=4f(1)2 and f(3)f(1)=2f(1)3+f(1)2.
Thus f(3),f(1) are solutions of the quadratic equation t2−2f(1)t+2f(1)3+f(1)2=0, thus
f(1)2−4f(1)2+2f(1)3+f(1)2=0⇔f(1)2(f(1)−1)=0.
f(ab+a+b)=f(a)f(b)+f(a)+f(b);∀a,b∈Q+(2)
Continue to put b=1 and b=3, we get
f(4a+3)=4f(a)+3 and f(2a+1)=2f(a)+1.
Put a=b=c=31 into the given condition, f(31)=3f(31)2 so f(31)=31.
Put a=2 and b=31 into (2), we have f(3)=f(2)f(31)+f(31)+f(2), thus f(2)=2.
Put b=c=2 into the given condition, f(4a+4)=4f(a)+4; ∀a∈Q+ thus
4f(a)+4=f(4a+4)=f(4(a+41)+3)=4f(a+41)+3.
From these, we can conclude that f(a+41)=f(a)+41, thus
f(4a+4)=4f(a)+4;∀a∈Q+.
Hence, by induction, one can show that f(x+n)=f(x)+n for all positive integer n and positive real number x; thus f(n)=n,∀n∈Z+.
Finally, put b→n and a→n+1m for some m,n∈Z+ into (2), we get
f(m+n)=f(n)f(n+1m)+f(n+1m)+f(n)→f(n+1m)=n+1m.
Thus f(x)=x for all x∈Q+. It is easy to check this function satisfies the condition. □