désolé si je répond à cet exo avant patrick
je crois que telle fonctions n'existe pas.
montrons que telles fonctions vérifiant la condition sont injectives.
on échange x par y on aboutit à x²f(xf(x))=y²f(yf(y)).
pour y=1 ==>f(f(x))=x²f(f(1)x)
de mème pour y=1 ==>x²f(f(1)+f(x))=f(f(x))(x+1) et donc si on pose a=f(1) on obtient les deux relations:
f(f(x))=x²f(ax) (*) et f(a+f(x))=(x+1)f(ax) (**)
suppososns mnt que f(x)=f(y),par les deux relations x²f(ax)=y²f(ay) et (x+1)f(ax)=(y+1)f(ay).le rapport donne (x-y)(xy+x+y)=0 et donc x=y.
pour x>1 et y=x²-x on aura (x²-x)f(x)=f(x)+f(x²-x) et donc x²-x>1 pour tout x>1 absurde.