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#