f(x) = 1 pour tout x ou f(x) = x
Ma solution ne repose que sur deux astuces calculatoires :

et

Première solution :
 = f((x^a)^b) = f(x^a)^{f(b)} = f(x)^{f(a)*f(b)})
mais on a aussi
 = f(x)^{f(ab)})
donc
 = f(a)*f(b))
(si f(x) différent de 1 pour au moins un x naturel)
 = f(x^{a+b}) = f(x)^{f(a+b)})
mais
 = f(x^a)*f(x^b) = f(x)^{f(a)+f(b)})
si f(x) différent de 1 pour au moins un x,
 = f(a) + f(b))
(additivité)
par récurrence , f(x) = x
sinon f(x) = 1 pour tout x
deuxieme solution :
 = f((x^{x^{n-1}})^x)= f(x^{x^{n-1}})^{f(x)} = f(x^{x^{n-2}})^{f(x)^2} = ... = f(x)^{f(x)^n})
mais on a aussi
 = f(x)^{f(x^n)})
donc
 = f(x)^n)
donc
^{f(n)} = f(x)^n)
si il existe x tel que différent de1,
 = n)
pour tout n