Suppose, a finite group $G$ is given.
I want to check whether there is a proper normal subgroup $N$ of $G$ and a subgroup $H$ of $G$, such that $G$ is the semidirect product of the groups $N$ and $H$.
In the case that the order of $N$ is coprime to the order of $G/N$, we can simply choose $H:=G/N$ and G is the semidirect product of $N$ and $H$, but how can I find out whether a suitable $H$ exists in general ?
GAP allows to enumerate the normal subgroups of a given finite group $G$, but I have no idea how to search for $H$ with GAP.
In general such a subgroup $H$ is called a complement to $N$. Complements could be conjugate, and so GAP has a function
ComplementClassesRepresentativesthat returns representatives of such classes. (That is, if an empty list is returned there is no complement.)The methods used build on group cohomology, a description of the algorithm for the case of solvable normal subgroups can be found in: Celler, F.; Neubüser, J.; Wright, C. R. B. Some remarks on the computation of complements and normalizers in soluble groups. Acta Appl. Math. 21 (1990), no. 1-2, 57–76 and a generalization that also allows to deal with cases in which only the factor group is solvable is in my paper: Hulpke, A. Calculation of the subgroups of a trivial-fitting group. ISSAC 2013—Proceedings of the 38th International Symposium on Symbolic and Algebraic Computation, 205–210, ACM, New York, 2013