# GAP:CyclicGroup

## Definition

### Function type

The function takes as input a positive integer and outputs a group. An optional filter can be provided that controls the form in which the group is constructed and stored.

### Behavior

The function is invoked by:

CyclicGroup([<filt>, ]n)

where $n$ is a positive integer. Here are the possibilities:

Nature of input Output
No filter, $n$ a positive integer cyclic group (specifically, finite cyclic group) of order $n$ constructed as a PcGroup, i.e., in terms of a polycyclic series
IsPermGroup as filter, $n$ a positive integer cyclic group of order $n$ constructed as a permutation group on a set of size $n$ (via the Cayley embedding, so its generator is a $n$-cycle)
IsMatrixGroup as filter, $n$ a positive integer cyclic group of order $n$ constructed as permutation matrices (again via Cayley embedding)

## Examples of usage

```gap> G := CyclicGroup(5);
<pc group of size 5 with 1 generators>
gap> H := CyclicGroup(8);
<pc group of size 8 with 3 generators>
gap> Subgroups(H);
[ Group([ <identity> of ... ]), Group([ f3 ]), Group([ f2 ]), Group([ f1, f2, f3 ]) ]
gap> K := CyclicGroup(IsPermGroup,9);
Group([ (1,2,3,4,5,6,7,8,9) ])
gap> L := CyclicGroup(IsMatrixGroup,3);
Group([ [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ] ])
gap> Set(L);
[ [ [ 0, 0, 1 ], [ 1, 0, 0 ], [ 0, 1, 0 ] ], [ [ 0, 1, 0 ], [ 0, 0, 1 ], [ 1, 0, 0 ] ], [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] ]
gap> CyclicGroup(0);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `CyclicGroupCons' on 2 arguments called from
CyclicGroupCons( IsPcGroup, arg[1] ) called from
<function>( <arguments> ) called from read-eval-loop