[proofplan]
By the structure theorem for finite abelian groups (or by hypothesis, since the theorem statement gives the cyclic decomposition), $G = \langle x_1 \rangle \times \cdots \times \langle x_r \rangle$ with $|x_j| = n_j$. Every irreducible complex representation of $G$ is one-dimensional, so it is a homomorphism $\rho: G \to \mathbb{C}^\times$. Such a $\rho$ is determined by the tuple $(\rho(x_1), \ldots, \rho(x_r))$, and the constraint $x_j^{n_j} = e$ forces $\rho(x_j)$ to be an $n_j$th root of unity. Conversely, any tuple of roots of unity $(\lambda_1, \ldots, \lambda_r)$ with $\lambda_j^{n_j} = 1$ extends uniquely to a homomorphism on the direct product. Counting tuples gives $n_1 \cdots n_r = |G|$ irreducibles. Two distinct tuples give two distinct (hence non-isomorphic) one-dimensional representations.
[/proofplan]
[step:Reduce irreducibles of $G$ to one-dimensional representations]
Let $G = C_{n_1} \times \cdots \times C_{n_r} = \langle x_1 \rangle \times \cdots \times \langle x_r \rangle$, where $|x_j| = n_j$. By [Abelian Groups Have One-Dimensional Irreducibles](/theorems/2417), every irreducible complex representation $V$ of $G$ has $\dim_\mathbb{C} V = 1$. Fix an isomorphism $V \cong \mathbb{C}$; under this identification the representation becomes a group homomorphism
\begin{align*}
\rho : G \to \operatorname{GL}(\mathbb{C}) = \mathbb{C}^\times.
\end{align*}
Two one-dimensional representations $V, V'$ are isomorphic as $G$-representations iff the corresponding homomorphisms $\rho, \rho'$ are equal: a $G$-isomorphism $V \to V'$ is multiplication by a non-zero scalar $\mu \in \mathbb{C}^\times$, and equivariance forces $\mu \rho(g) = \rho'(g) \mu$ for all $g$, i.e., $\rho = \rho'$ (using commutativity of $\mathbb{C}^\times$).
Hence the set of isomorphism classes of irreducible complex representations of $G$ is in bijection with the set of group homomorphisms
\begin{align*}
\hat G := \operatorname{Hom}(G, \mathbb{C}^\times).
\end{align*}
[guided]
The first reduction is to convert "irreducible complex representations of $G$" into the more concrete object "group homomorphisms $G \to \mathbb{C}^\times$".
Theorem 2417 says: every irreducible complex representation of an abelian group is one-dimensional. So $V$ is a one-dimensional $\mathbb{C}$-vector space with a $G$-action, which after choosing a basis is exactly a homomorphism $\rho: G \to \mathbb{C}^\times$ (because $\operatorname{GL}_1(\mathbb{C}) = \mathbb{C}^\times$).
Why does the bijection between iso-classes and homomorphisms hold? On the one-dimensional level, a $G$-isomorphism $V \to V'$ is just multiplication by some non-zero scalar $\mu$; equivariance reads $\mu \rho(g) = \rho'(g) \mu$, and in $\mathbb{C}^\times$ scalars commute, so this collapses to $\rho = \rho'$. Hence isomorphic one-dimensional representations correspond to **equal** homomorphisms, not merely conjugate ones.
The set $\hat G = \operatorname{Hom}(G, \mathbb{C}^\times)$ is the **dual group** of $G$. Counting irreducibles is now counting elements of $\hat G$.
[/guided]
[/step]
[step:Parametrise homomorphisms $G \to \mathbb{C}^\times$ by tuples of roots of unity]
We claim there is a bijection
\begin{align*}
\Psi : \hat G &\to \mu_{n_1} \times \cdots \times \mu_{n_r} \\
\rho &\mapsto (\rho(x_1), \ldots, \rho(x_r)),
\end{align*}
where $\mu_n := \{\zeta \in \mathbb{C}^\times : \zeta^n = 1\}$ is the set of $n$th roots of unity.
**$\Psi$ is well-defined.** Given $\rho \in \hat G$ and $j \in \{1, \ldots, r\}$, let $\lambda_j := \rho(x_j)$. Since $x_j^{n_j} = e$ in $G$ and $\rho$ is a homomorphism,
\begin{align*}
\lambda_j^{n_j} = \rho(x_j)^{n_j} = \rho(x_j^{n_j}) = \rho(e) = 1.
\end{align*}
Hence $\lambda_j \in \mu_{n_j}$.
**$\Psi$ is injective.** Suppose $\Psi(\rho) = \Psi(\rho')$, i.e., $\rho(x_j) = \rho'(x_j)$ for all $j$. Every element of $G$ has the form $x_1^{j_1} \cdots x_r^{j_r}$ for some integers $j_1, \ldots, j_r$, and using the homomorphism property
\begin{align*}
\rho(x_1^{j_1} \cdots x_r^{j_r}) = \rho(x_1)^{j_1} \cdots \rho(x_r)^{j_r} = \rho'(x_1)^{j_1} \cdots \rho'(x_r)^{j_r} = \rho'(x_1^{j_1} \cdots x_r^{j_r}).
\end{align*}
So $\rho = \rho'$.
**$\Psi$ is surjective.** Given $(\lambda_1, \ldots, \lambda_r) \in \mu_{n_1} \times \cdots \times \mu_{n_r}$, define
\begin{align*}
\rho : G &\to \mathbb{C}^\times \\
x_1^{j_1} \cdots x_r^{j_r} &\mapsto \lambda_1^{j_1} \cdots \lambda_r^{j_r}.
\end{align*}
We must check this is well-defined: every $g \in G$ has a **unique** expression as $x_1^{j_1} \cdots x_r^{j_r}$ with $0 \leq j_k < n_k$ (because $G$ is the internal direct product of the $\langle x_k \rangle$ with $|x_k| = n_k$), but the formula is given for arbitrary integer exponents, so we must check that two different integer tuples representing the same element produce the same value. If $x_1^{j_1} \cdots x_r^{j_r} = x_1^{j_1'} \cdots x_r^{j_r'}$ in $G$, then by uniqueness of the direct product decomposition $j_k \equiv j_k' \pmod{n_k}$ for each $k$. Since $\lambda_k^{n_k} = 1$, we have $\lambda_k^{j_k} = \lambda_k^{j_k'}$, so the formula gives the same value. Hence $\rho$ is a well-defined function.
It is a homomorphism because in the direct product $G$, multiplication is componentwise:
\begin{align*}
(x_1^{j_1} \cdots x_r^{j_r}) \cdot (x_1^{k_1} \cdots x_r^{k_r}) = x_1^{j_1+k_1} \cdots x_r^{j_r+k_r},
\end{align*}
and $\rho$ sends the product to $\lambda_1^{j_1+k_1} \cdots \lambda_r^{j_r+k_r} = (\lambda_1^{j_1} \cdots \lambda_r^{j_r})(\lambda_1^{k_1} \cdots \lambda_r^{k_r})$.
By construction $\Psi(\rho) = (\lambda_1, \ldots, \lambda_r)$, so $\Psi$ is surjective.
[guided]
We claim $\Psi: \hat G \to \mu_{n_1} \times \cdots \times \mu_{n_r}$, $\rho \mapsto (\rho(x_1), \ldots, \rho(x_r))$, is a bijection.
**Why does $\rho(x_j)$ land in $\mu_{n_j}$?** The element $x_j$ has order $n_j$ in $G$, so $x_j^{n_j} = e$. A homomorphism preserves orders weakly: $\rho(x_j)^{n_j} = \rho(x_j^{n_j}) = \rho(e) = 1$. So $\rho(x_j)$ is an $n_j$th root of unity, regardless of which homomorphism $\rho$ we picked.
**Why is $\Psi$ injective?** A homomorphism out of a generated group is determined by its values on generators. The generators of $G$ are $x_1, \ldots, x_r$, and their images under $\rho$ are exactly the components of $\Psi(\rho)$. Two homomorphisms agreeing on generators agree everywhere.
**Why is $\Psi$ surjective?** Given any tuple $(\lambda_1, \ldots, \lambda_r)$ with $\lambda_j^{n_j} = 1$, we construct $\rho$ by the formula $x_1^{j_1} \cdots x_r^{j_r} \mapsto \lambda_1^{j_1} \cdots \lambda_r^{j_r}$.
The well-definedness check is the only subtle point: an element of $G$ has many integer-exponent representations (e.g. $x_1 = x_1^{1+n_1}$), and we need them all to give the same value. Different integer representations differ by multiples of $n_k$ in each exponent (because the direct product decomposition is unique modulo orders), and $\lambda_k^{n_k} = 1$ exactly absorbs these differences. This is **why** we needed $\lambda_k$ to be an $n_k$th root of unity — without this constraint, the formula would not give a well-defined function.
Once well-definedness is checked, the homomorphism property is immediate from componentwise multiplication in $G$.
[/guided]
[/step]
[step:Count tuples to obtain $|\hat G| = n_1 \cdots n_r = |G|$]
The $n_j$th roots of unity in $\mathbb{C}^\times$ form a finite set of size exactly $n_j$: the polynomial $X^{n_j} - 1 \in \mathbb{C}[X]$ has degree $n_j$, hence at most $n_j$ roots in the field $\mathbb{C}$, and the elements
\begin{align*}
1, e^{2\pi i / n_j}, e^{2 \cdot 2\pi i / n_j}, \ldots, e^{(n_j-1) \cdot 2\pi i / n_j}
\end{align*}
are $n_j$ distinct roots, so $|\mu_{n_j}| = n_j$.
By the previous step, $|\hat G| = |\mu_{n_1} \times \cdots \times \mu_{n_r}| = \prod_{j=1}^r |\mu_{n_j}| = n_1 \cdots n_r$. By the construction of $G$ as a direct product of cyclic groups of orders $n_1, \ldots, n_r$,
\begin{align*}
|G| = n_1 \cdots n_r.
\end{align*}
Combining with the bijection between $\hat G$ and isomorphism classes of irreducible complex representations of $G$ established in the first step,
\begin{align*}
\#\{\text{isomorphism classes of irreducible complex representations of } G\} = |\hat G| = n_1 \cdots n_r = |G|.
\end{align*}
[guided]
The number of $n_j$th roots of unity in $\mathbb{C}$ is exactly $n_j$. This uses two facts: (i) a degree-$n_j$ polynomial over a field has at most $n_j$ roots; (ii) the roots $e^{2\pi i k/n_j}$ for $k = 0, \ldots, n_j - 1$ are pairwise distinct (their arguments differ). Together these give $|\mu_{n_j}| = n_j$ exactly.
The cardinality of a Cartesian product is the product of cardinalities, so $|\mu_{n_1} \times \cdots \times \mu_{n_r}| = n_1 \cdots n_r$. Composing with our bijection from the first step (irreducible iso-classes $\leftrightarrow \hat G$) and from the second step ($\hat G \leftrightarrow \mu_{n_1} \times \cdots \times \mu_{n_r}$), the number of irreducibles is $n_1 \cdots n_r = |G|$.
This is the count promised in the theorem statement. As a bonus, the bijection also tells us the dual group satisfies $\hat G \cong G$ (non-canonically): both are finite abelian groups of the same orders along the cyclic factors, isomorphic via $x_j \leftrightarrow $ generator of $\mu_{n_j}$.
[/guided]
[/step]