My attempt:
Let's divide into two cases:
1) $G$ is cyclic. So, there exists $g$ (not equal to identity element) belonging to $G$, such that $\langle g\rangle = G$. Let, $|G| = m = ab$ ($m$ is non-prime and not equal to $1$) and $a, b$ are not equal to $1$.
Let's look at subgroup $\langle g^a\rangle = \{e, g^a, g^2a,\ldots, g^ba = e\}$ hence, there are $b$ elements in the subgroup, but since $ab = n$, $b < n$. Done.
2) $G$ is not cyclic. So $\langle g\rangle \neq G$. So, $o(g) < |G|$. By definition, the subgroup, $\langle g\rangle = \{e, g, g^2, \ldots, g^{o(g)-1}\}$, but since $o(g) < G$, we are done.
Confusion:
i) In number 2, how can I be sure that the subgroup that I wrote down is indeed correct? Is there any better way to do part 2? ii) Is the approach in number 1 good?
The first part is fine.
The second part is not written clearly. When you wrote “So is not equal to G”, you should have written “So, given $g\in G\setminus\{e\}$, $G\neq\langle g\rangle$”. Then, you could said that $\langle g\rangle$ is the subgroup that you're looking for.