I don't think that this is a complete test. If 1~:|n then it it is not a primitive root of unity. But n must be a complex number when raised to an *integer* power is 1. Maybe converting the complex number to polar then checking the angle and seeing if it is a rational fraction of a circle.
Obviously computers will always find some rational number though it might require raising n to a very large power. There should be some reasonable limit as to how large the power may be. On Mon, Jun 2, 2014 at 1:08 PM, Raul Miller <[email protected]> wrote: > 1=|n > > Thanks, > > -- > Raul > > > On Mon, Jun 2, 2014 at 2:54 PM, Dan Bron <[email protected]> wrote: > > Given a complex number, how can I determine whether it is a primitive > root > > of unity? > > > > (This is a subtask of a code golf problem, so the shorter the better) > > > > -Dan > > ---------------------------------------------------------------------- > > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm > ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
