pub trait GetPrimitiveRootOfUnity where Self: Sized, { fn get_primitive_root_of_unity(&self, n: u64) -> (Option<Self>, Vec<u64>); }