Idempotent entire complex function problem Problem statement
Find all the entire functions $f:\mathbb C \to \mathbb C$, that satisfy $f(f(z))=f(z)$ for all $z \in \mathbb C$.
I have no idea how to attack this problem, I would appreciate hints and suggestions.

I think this could work: assuming $f(z)$ is not constant, and considering the points where $f'(z) \neq 0$ , we have : $$f'(f(z))f'(z)=f'(z) $$, so that $f'(f(z))=1$. Since the range of $f(z)$ *, since the zeros of an analytic point are isolated) contains a limit point in $\mathbb C$, we can use the identity theorem on $f'(z)$.
(actually, the set where $f'(z) \neq 0$, which contains a limit point in $\mathbb C$.
Edit: We have shown that :
1)the two functions $f'$ and $1$ agree on the subset of the plane $f(z): z \in \mathbb C -Z$, where $Z$ is the set of points where $f'(z)=$.( The reason we exclude $Z$ is that , in order to derive the condition $f'(f(z))=1$, we divided both sides by $f'(z)$, so we want to avoid division by zero). 
2)Now, we want to apply the identity theorem, so we must show that the set $f(z)$, where the two functions agree, has a limit point in $\mathbb C$. One way of doing this is by using Panda Bear's suggestion, using Picard's theorem: http://en.wikipedia.org/wiki/Picard_theorem , which states that the image of an entire function is dense in the plane.
