Making #x=y=0# we have #f(0)=0#
Making #y=0# we have
#f(x^2)=xf(x)# but
#f((-x)^2)=f(x^2)=-xf(-x)#
so #f(x)# is an odd function.
Making now #x = -y# we have
#f(x^2-xf(x))=x f(0) = 0#
so supposing that
#f(x)=0 => x=0#
(remember that #f(x)# is an odd function) we have
#x^2-xf(x)=x(x-f(x))=0#
considering #x ne 0# we have
#f(x)=x#
Checking
#(x^2+y x)=x(x+y)#
Note. Another way of proof for #f(x)=x# is by doing for #x ge 0#
#f(x) = x^(1/2)f(x^(1/2))= cdots = x^(1/2+1/4+cdots + 1/(2^n))f(x^(1/(2^n)))#
but #lim_(n->oo) x^(1/2^n) = 1# and #lim_(n->oo)(1/2+1/4+cdots+1/(2^n))=1# so
#f(x) = x f(1)# now substituting this result into #f(x^2)=xf(x)# we obtain
#f(x^2)=x^2f(1)->f(1)=1#