# When does the absolute value of a sum of an integer and an algebraic integer equal an integer?

Let's say Z is a sum of n-th roots of unity and thus an algebraic integer, and D is a rational integer. If |z+D| is an integer, what can we conclude regarding Z? Can we say |Z| is an integer? Another related question is: For which non-zero D can we conclude that |Z| is an integer if |Z+D| is an integer?

If $D$ is a nonzero rational number and $R$ is a positive number, the complex numbers $z$ with $|z+D|=R$ form the circle of radius $R$ centred at $-D$. The intersection of this with the circle $|z| = k$ (if nonempty) consists of one or two points satisfying the quadratic $D z^2 + (D^2 + k^2 - R^2) z + k^2 D = 0$. So if $z$ with $|z+D|^2$ rational has degree $> 2$ over the rationals, $|z|^2$ can't be a rational number.
Just to give a numerical example, if $\zeta=(1+i\sqrt3)/2$, a 6th root of unity, and $z=1+8\zeta=5+4i\sqrt3$, and $D=6$, then $z$ is a sum of roots of unity, $D$ is a rational integer, $|z+D|=|11+4i\sqrt3|=\sqrt{11^2+3\times4^2}=13$ is an integer, but $|z|=\sqrt{5^2+3\times4^2}=\sqrt{73}$ is not an integer.