Prob.48 in Section.6 of "A First Course in Abstract Algebra", Edition 7, Fraleigh.
"Show that a group that has only a finite number of subgroups must be a finite group."
Here is my attempt: $p\rightarrow q \Leftrightarrow \neg q\rightarrow \neg p$
So it is equivalent to prove: "If $G$ is an infinite group, then it has infinite number of subgroups."
Since $G$ is an infinite group, it has infinite elements.
For each $x\in G$, we can construct a cyclic subgroup $\langle x\rangle$. But it is possible that there are redundant cases. For example, for some $x_1\in G, x_2\in G, x_1\neq x_2$, but $\langle x_1 \rangle =\langle x_2 \rangle $.
Define the set:$S=\{\langle x \rangle| \forall x\in G\}$, Now there are two cases:
(1) If $|S|$ is finite, then there exists some $\langle x\rangle \in S$, such that $|\langle x\rangle|=\infty$. (Otherwise, $G$ will be a finite group, which is a contradiction.) Since $\langle x \rangle$ is isomorphic to $\mathbb{Z}$, which contains infinite number of subgroups, $2\mathbb{Z}, 3\mathbb{Z}, ...$, so $\langle x\rangle$ contains infinite number of subgroups. Therefore, $G$ contains infinite number of subgroups.
(2) If $|S|$ is infinite, then $G$ has infinite cyclic subgroups, hence infinite subgroups. The proof is completed.