/* Fortsetzung: Elementordnung und zyklische Gruppen */


/* Welche Elementordnungen sind möglich ? */

G := SymmetricGroup(4);
L := [Order(g) : g in G];
L;

G := GL(2,3);
L := [Order(g) : g in G];
L;

/* Finden Sie durch Experimente eine notwendig Bedingung. Beweisen Sie diese! 
   Führen Sie Experimente durch, um zu testen, ob Ihre Bedingung auch hinreichen ist.
 */



/* Studium des zentrums einer Gruppe */

S4 := SymmetricGroup(4);
#S4;
Gelts := [g : g in S4];
Gelts;
sigma := Gelts[3];
tau := Gelts[5];
sigma*tau;
sigma;
tau;
sigma*tau; /* ACHTUNG: In magma wirken Abbildungen von rechts */
sigma*tau eq tau*sigma;


/* Schreiben Sie eine einfache Funktion, die feststellt, ob ein Element g in G zentral ist. */
IstZentral := function(g)
    G := Parent(g);
    ..............................................


end function;

/* Tests auf Korrektheit durch Vergleich mit der MAGMA-Funktion. */
IstZentral(S4.1);
[IstZentral(g) eq IsCentral(S4, g) : g in Gelts];

G := GL(2,7);
[IstZentral(g) eq IsCentral(G, g) : g in G];


/* Das Zentrum einer GL(2,p) kennen wir aus der linearen Algebra. */
Z := [g : g in G | IstZentral(g)];
Z;

/* Schreiben Sie eine Funktion, die das Zentrum einer endlichen Gruppe G berechnet
   Es soll eine Untergruppe von G zurückgegegeben werden. Testen Sie Ihre Funtion durch Vergelcih mit der MAGMA-Funktion Centre.
*/
Zentrum := function(G)
.........
end function;



for n:=3 to 20 do
    G := SymmetricGroup(n);
    Z := Zentrum(G);
    print "n = ", n, "-----------------", #Z;
end for;

/* Beweise: Z(S_n) ist trivial */
