Theorem $\mathbb{N}×\mathbb{N}$ is denumerable.
proof. Define $f(n,k) = 2^n(2k+1)$, $n,k\in\mathbb{N}$. Choose two distinct pairs $(n_1,k_1)$ and $(n_2,k_2)$ from $\mathbb{N}×\mathbb{N}$. Suppose, for the sake of contradiction, that $f(n_1,k_1) = f(n_2,k_2)$, which is equivalent to $2^{n_1}(2k_1+1) = 2^{n_2}(2k_2+1)$. By trichotomy, either $n_1 > n_2$ or $n_1 < n_2$ since our hypothesis rules out $n_1 = n_2$. Assume $n_1 > n_2$, and by symmetry the other case will follow. Then $2^{n_1-n_2}(2k_1+1)= (2k_2+1)$, a contradiction. By Trichotomy either $k_1 > k_2$ or $k_1 < k_2$ since our hypothesis rules out $k_1 = k_2$. Assume that $k_1 > k_2$, then $n_1 < n_2$, another contradiction. The case where $k_1 < k_2$ follows by the same argument.
All natural numbers are of the form $2^{n}(2k+1)$ where $n,k\in\mathbb{N}$. Thus we obtain a bijection between $\mathbb{N}×\mathbb{N}$ and $\mathbb{N}$.
Is it rigorous enough, does it cover all possible cases, did I make loose assumptions etc, I'm just a highschooler self learning real analysis from Pugh's Real Mathematical Analysis book so all constructive feedback will be appreciated
Another approach which is less creative can be using Schröder–Bernstein theorem.
Obviously there’s an injective function from $\mathbb{N}$ to $\mathbb{N} \times \mathbb{N} $. Now consider this function from $\mathbb{N} \times \mathbb{N}$ to $\mathbb{N}$. $f(n,k)=p^{n}q^{k}$, where $p$ and $q$ are coprime natural numbers (for example two distinct prime numbers). We see that $f$ is one-to-one and using Schröder–Bernstein, we get the result.
Schröder–Bernstein theorem: https://en.m.wikipedia.org/wiki/Schr%C3%B6der%E2%80%93Bernstein_theorem#:~:text=In%20set%20theory%2C%20the%20Schr%C3%B6der,function%20h%20%3A%20A%20%E2%86%92%20B.