# The $221$ groups of order $|G| = 400$

A book of John Conway suggests there are 221 groups of order $$|G| = 400$$. How do I go about finding these. Commutative groups with $$ab = ba$$ can be listed very easily:

• $$\mathbb{Z}/400\mathbb{Z}$$
• $$\mathbb{Z}/200\mathbb{Z} \oplus \mathbb{Z}/2\mathbb{Z}$$
• $$\mathbb{Z}/25\mathbb{Z} \oplus \mathbb{Z}/16\mathbb{Z}$$
• ...

There are 207 super-solvable groups of order $$|G| = 400$$ How do we list some of them?

$$1 \leq H_0 \leq H_1 \leq H_2 \leq \dots \leq H_n = G$$

here $$H_i \vartriangleleft G$$ and $$H_{i+1}/H_i$$ is cyclic. This could be a great way to explain the difference between nilpotent and solvable groups. Some discussion here however I will put in the tag which includes (for example) matrix representation or permutation representations.

There are 28 nilpotent groups of order $$|G| = 400$$.

I haven't used GAP the question would be how does the computer program find such objects? Here's some of what it found:

• $$G = (C_5 \ltimes Q_8 ) \times D_{10}$$
• $$G = (C_5 \ltimes C_5) \ltimes (C_4 \times C_4)$$
• $$G = C_2 \times ((C_5 \times C_5) \ltimes C_8)$$

These names or descriptions leave it upon us to say what these symmetries actually look like.

• Example, $$D_{10}$$ is the dihedral group or the symmetry group of a 10-gon
• Also $$D_{10} = C_{10} \ltimes C_2$$ , see also [1] .
• $$C_n \simeq \mathbb{Z}/n\mathbb{Z}$$ is the cyclic group .
• Pithy but partly-accurate answer: gap-system.org/Manuals/pkg/SmallGrp/doc/chap1.html . Though in all seriousness, the references there are probably going to be your best hope; since $|G|=p^4q^2$ it shouldn't be too terrible to analyze the cases. Apr 19 at 23:25
• Even with computer help, just going through the list of results. Apr 19 at 23:38
• Any particular reason you're interested in $|G|=400$ particularly? $|G|=100$ has few enough candidates to be relatively straightforwardly enumerable, and $|G|=200$ has a quarter as many groups as 400 does, while still having non-trivial members in most of the categories (e.g. nilpotent but not abelian, solvable but not supersolvable, etc.) Apr 19 at 23:52

Using the SmallGrp package for GAP and the function StructureDescription you can get some insight into the structure of the groups of order 400. See the documentation for how to interpret these strings, e.g. a colon : denotes a semidirect product.

G := AllSmallGroups(400);;
List(G, g -> StructureDescription(g));
[ "C25 : C16", "C400", "C25 : C16", "C25 : Q16", "C8 x D50",
"C25 : (C8 : C2)", "C25 : QD16", "D400", "C2 x (C25 : C8)",
"C25 : (C8 : C2)", "C4 x (C25 : C4)", "C25 : (C4 : C4)",
"C25 : (C4 : C4)", "C25 : ((C4 x C2) : C2)", "C25 : QD16", "C25 : D16",
"C25 : Q16", "C25 : QD16", "C25 : ((C4 x C2) : C2)", "C100 x C4",
"C25 x ((C4 x C2) : C2)", "C25 x (C4 : C4)", "C200 x C2",
"C25 x (C8 : C2)", "C25 x D16", "C25 x QD16", "C25 x Q16",
"C25 : (C8 x C2)", "C25 : (C8 : C2)", "C4 x (C25 : C4)",
"C25 : (C4 : C4)", "C2 x (C25 : C8)", "C25 : (C8 : C2)",
"C25 : ((C4 x C2) : C2)", "C2 x (C25 : Q8)", "C2 x C4 x D50",
"C2 x D200", "C25 : ((C4 x C2) : C2)", "D8 x D50",
"C25 : ((C4 x C2) : C2)", "Q8 x D50", "C25 : ((C4 x C2) : C2)",
"C2 x C2 x (C25 : C4)", "C2 x (C25 : D8)", "C100 x C2 x C2", "C50 x D8",
"C50 x Q8", "C25 x ((C4 x C2) : C2)", "C5 x (C5 : C16)",
"(C5 x C5) : C16", "C80 x C5", "(C2 x C2 x C2 x C2) : C25",
"C2 x C2 x (C25 : C4)", "C2 x C2 x C2 x D50", "C50 x C2 x C2 x C2",
"C5 x (C5 : C16)", "(C5 x C5) : C16", "(C5 x C5) : C16",
"(C5 x C5) : C16", "(C5 : C8) x D10", "(C5 x C5) : (C8 x C2)",
"(C5 x C5) : (C8 : C2)", "(C5 x C5) : (C8 : C2)", "(C5 x C5) : D16",
"(C5 x C5) : D16", "(C5 x C5) : QD16", "(C5 x C5) : QD16",
"(C5 x C5) : QD16", "(C5 x C5) : Q16", "(C5 x C5) : Q16",
"(C5 : C4) x (C5 : C4)", "(C5 x C5) : ((C4 x C2) : C2)",
"(C5 x C5) : ((C4 x C2) : C2)", "(C5 x C5) : (C4 : C4)",
"(C5 x C5) : (C4 : C4)", "C40 x D10", "C5 x (C40 : C2)",
"C5 x (C40 : C2)", "C5 x D80", "C5 x (C5 : Q16)", "C10 x (C5 : C8)",
"C5 x ((C5 : C8) : C2)", "C20 x (C5 : C4)", "C5 x ((C5 : C4) : C4)",
"C5 x (C20 : C4)", "C5 x ((C20 x C2) : C2)", "C5 x ((C5 x D8) : C2)",
"C5 x ((C5 : Q8) : C2)", "C5 x ((C5 x Q8) : C2)", "C5 x (C5 : Q16)",
"C5 x ((C10 x C2) : C4)", "C8 x ((C5 x C5) : C2)",
"(C5 x C5) : (C8 : C2)", "(C5 x C5) : QD16", "(C5 x C5) : D16",
"(C5 x C5) : Q16", "C2 x ((C5 x C5) : C8)", "(C5 x C5) : (C8 : C2)",
"C4 x ((C5 x C5) : C4)", "(C5 x C5) : (C4 : C4)",
"(C5 x C5) : (C4 : C4)", "(C5 x C5) : ((C4 x C2) : C2)",
"(C5 x C5) : D16", "(C5 x C5) : QD16", "(C5 x C5) : QD16",
"(C5 x C5) : Q16", "(C5 x C5) : ((C4 x C2) : C2)", "C20 x C20",
"C5 x C5 x ((C4 x C2) : C2)", "C5 x C5 x (C4 : C4)", "C40 x C10",
"C5 x C5 x (C8 : C2)", "C5 x C5 x D16", "C5 x C5 x QD16",
"C5 x C5 x Q16", "(C5 x C5) : C16", "(C5 : C4) x (C5 : C4)",
"(C5 x C5) : ((C4 x C2) : C2)", "(C5 x C5) : (C4 : C4)",
"D10 x (C5 : C8)", "(C5 x C5) : (C8 x C2)", "(C5 x C5) : (C8 : C2)",
"(C5 x C5) : (C8 : C2)", "(C5 x C5) : (C4 x C4)",
"(C5 x C5) : ((C4 x C2) : C2)", "(C5 x C5) : (C4 : C4)",
"(C5 x C5) : (C8 x C2)", "(C5 x C5) : (C8 : C2)",
"(C5 x C5) : ((C4 x C2) : C2)", "(C5 x C5) : (C4 : C4)",
"(C5 x C5) : D16", "(C5 x C5) : QD16", "(C5 x C5) : Q16",
"(C5 x C5) : (C4 : C4)", "C5 x (C5 : (C8 x C2))",
"C5 x ((C5 : C8) : C2)", "C20 x (C5 : C4)", "C5 x (C20 : C4)",
"C10 x (C5 : C8)", "C5 x ((C5 : C8) : C2)", "C5 x ((C10 x C2) : C4)",
"(C5 x C5) : (C8 x C2)", "(C5 x C5) : (C8 : C2)",
"C4 x ((C5 x C5) : C4)", "(C5 x C5) : (C4 : C4)",
"C2 x ((C5 x C5) : C8)", "(C5 x C5) : (C8 : C2)",
"(C5 x C5) : ((C4 x C2) : C2)", "(C5 x C5) : (C8 x C2)",
"(C5 x C5) : (C8 : C2)", "C4 x ((C5 x C5) : C4)",
"(C5 x C5) : (C4 : C4)", "C2 x ((C5 x C5) : C8)",
"(C5 x C5) : (C8 : C2)", "(C5 x C5) : ((C4 x C2) : C2)",
"(C5 x C5) : (C8 x C2)", "(C5 x C5) : (C8 : C2)",
"C4 x ((C5 x C5) : C4)", "(C5 x C5) : (C4 : C4)",
"C2 x ((C5 x C5) : C8)", "(C5 x C5) : (C8 : C2)",
"(C5 x C5) : ((C4 x C2) : C2)", "(C5 : Q8) x D10",
"(C5 x C5) : ((C4 x C2) : C2)", "(C5 x C5) : ((C4 x C2) : C2)",
"(C5 x C5) : (C2 x Q8)", "(C5 x C5) : ((C4 x C2) : C2)",
"(C5 x C5) : ((C4 x C2) : C2)", "C4 x D10 x D10", "D40 x D10",
"(C5 x C5) : (C2 x D8)", "C2 x ((C5 : C4) x D10)",
"(C5 x C5) : ((C4 x C2) : C2)", "(C5 x C5) : ((C4 x C2) : C2)",
"C2 x ((C5 x C5) : (C4 x C2))", "C2 x ((C5 x C5) : D8)",
"C2 x ((C5 x C5) : D8)", "C2 x ((C5 x C5) : Q8)",
"((C10 x C2) : C2) x D10", "(C5 x C5) : (C2 x D8)", "C10 x (C5 : Q8)",
"C2 x C20 x D10", "C10 x D40", "C5 x ((C20 x C2) : C2)", "C5 x D8 x D10",
"C5 x ((C4 x D10) : C2)", "C5 x Q8 x D10", "C5 x ((C4 x D10) : C2)",
"C2 x C10 x (C5 : C4)", "C10 x ((C10 x C2) : C2)",
"C2 x ((C5 x C5) : Q8)", "C2 x C4 x ((C5 x C5) : C2)",
"C2 x ((C5 x C5) : D8)", "(C5 x C5) : ((C4 x C2) : C2)",
"D8 x ((C5 x C5) : C2)", "(C5 x C5) : ((C4 x C2) : C2)",
"Q8 x ((C5 x C5) : C2)", "(C5 x C5) : ((C4 x C2) : C2)",
"C2 x C2 x ((C5 x C5) : C4)", "C2 x ((C5 x C5) : D8)", "C20 x C10 x C2",
"C5 x C10 x D8", "C5 x C10 x Q8", "C5 x C5 x ((C4 x C2) : C2)",
"(C5 : C4) x (C5 : C4)", "(C5 x C5) : (C8 : C2)",
"(C5 x C5) : ((C4 x C2) : C2)", "C2 x ((C5 x C5) : C8)",
"C2 x (D10 x (C5 : C4))", "C2 x ((C5 x C5) : (C4 x C2))",
"C2 x ((C5 x C5) : D8)", "C2 x ((C5 x C5) : Q8)",
"C5 x ((C2 x C2 x C2 x C2) : C5)", "C2 x C10 x (C5 : C4)",
"C2 x C2 x ((C5 x C5) : C4)", "C2 x C2 x ((C5 x C5) : C4)",
"C2 x C2 x ((C5 x C5) : C4)", "C2 x C2 x D10 x D10",
"C2 x C2 x C10 x D10", "C2 x C2 x C2 x ((C5 x C5) : C2)",
"C10 x C10 x C2 x C2" ]

• the best we can do is type in a computer and look around? Apr 20 at 14:33
• No but I hoped the results could help you with the intuition required to come up with the theory. Unfortunately I don’t feel well qualified to do the theory part. Apr 20 at 14:45
• it's a great starting point... Apr 20 at 19:44
• If you're interested in the best we can do, your question is much, much too broad for math.stackexchange. Apr 20 at 20:24
• Just to add that SmallGrp is a database, while to construct them almost "from scratch" you can use the GrpConst package. After LoadPackage("grpconst");, enter l:=ConstructAllGroups(400);Length(l); - took only 3 seconds to get the result. Apr 20 at 20:52