cyclic:= function(n,a) local x, b, o ; x:= []; b:= 1; o:= One(Integers mod n); if Gcd(n,a) = 1 then repeat b:= b*a mod (n); Add(x,b); until b=1; fi; return x*o; end;