# Read("/cygdrive/c/Users/papa/Documents/gf.g"); isokpca := function(p, c) local g, cg, u; g := GF(p); # Print("g=", g); cg := ClosureSubgroup(g, [c*One(g), (c-1)*One(g), (p-1)*One(g)]); if Order(cg) = p then return true; fi; return false; end; isokpc := function(p, c) local g, cg, u, myelems, mym; g := GF(p); # myelems := DuplicateFreeList([One(g), (c-1)*One(g), (p-1)*One(g), Inverse(c*One(g)), Inverse((c-1)*One(g)), Inverse((p-1)*One(g))]); # myelems := DuplicateFreeList([One(g), (c-1)*One(g), (p-1)*One(g), One(g)/c, One(g)/(c-1), One(g)/(p-1)]); myelems := [c*One(g), (c-1)*One(g), (p-1)*One(g)]; mym := MagmaWithInverses(g, myelems); Print ("liste=", myelems, "\n"); Print ("listm=", mym, "\n"); Print ("IsMagma=", IsMagma(mym), "\n"); Print ("IsMagmaWithInv=", IsMagmaWithInverses(mym), "\n"); #Print(AsGroup(mym)); Print("sizem=", Size(mym), "\n"); Print("sizeg=", Size(g), "\n"); # u := Subgroup(g, mym); # if Order(u) = p then return true; fi; return false; end; isokp := function(p) local c, g, cg, u; g := GF(p); for c in [2..p-2] do # if AsGroup([c*One(g), (c-1)*One(g), (p-1)*One(g)]) = fail then continue; fi; u := Subgroup(g, [c*One(g), (c-1)*One(g), (p-1)*One(g)]); cg := ClosureGroup(g, u); if Order(cg) = p then return true; fi; od; return false; end; lista := function(nn) local p; for p in [2..nn] do if IsPrime(p) and (p mod 12 = 11) and isokp(p) then Print(p, ", "); fi; od; end; listb := function(nn) local p; for p in [5..nn] do if IsPrime(p) and isokp(p) then Print(p, ", "); fi; od; end;