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 any seen this it 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) = x\operatorname{mod}10$ ( any base will do ) on $(\mathbb{N},+)$.