Let $A$ be a matrix over $\mathbb{R}$ and $p_A(x)$ its characteristic polynomial. Is there an easy way to find out how many of the roots of $p_A(x)$ are roots of unity?
Fixing a positive integer $k$, the multiplicity of 1 as a root of $p_{A^k}(x)$ is the number of roots of unity of order dividing $k$ which satisfy $p_A(x)$, which gives some of the information. If $A$ is normal, then I can simply count the multiplicity of 1 in $p_{AA^*}(x)$, but this is not true for general matrices.
I'm mainly interested in matrices of order 4, for which there is a formula for the roots. I want to run some computer program to count the number of roots of unity, and I prefer not to use division and square\cube roots to avoid (as far as I can) precision errors. There is, on the other hand, a way to check how many real\complex roots a quartic polynomial has by using only polynomial functions of its coefficients, and the question is if there is something similar to count the roots of unity.