Find all endo-functions $f$ on a commutative semigroup $(\mathbb{S},*)$ such that $f(x*y) = f(f(x)*f(y))$. Typical case of interest are $(\mathbb{N},+)$ or $(\mathbb{Z}/k\mathbb{Z},+)$ or $(\mathbb{Z}/k\mathbb{Z},.)$. QUESTION : Has anyone seen this before? I like to call them *mo-morphisms* ( phonetically it repeats as in the right hand side of the equation). The motivation comes from the function $f(n) = n \mod 10$ ( any base will do ) on $(\mathbb{N},+)$. Another example on $(\mathbb{N},.)$ is $f(n):= rad(n)$. The product of the primes dividing $n$ (each prime counted once). It is easy to see that $rad(x.y)=rad(rad(x).rad(y))$.