Let $A$ be a diagonalizable real matrix such as $A^3=A$. Prove that $\mbox{rank}(A) = \mbox{tr}(A^2)$.
My way so far:
I know that if $B$ is simillar to $A$ then $B^3=B$.
$A$ is diagonalizable so there is a diagonal matrix $D=P^{-1}AP$
$rank(A)=rank(D)$ and $trace(A)=trace(D)$
$rank(A^2)=rank(D^2)$ and $trace(A^2)=trace(D^2)$
$rank(A^2)\le rank(A)$
$D^3=D$
But how can I continue from here?