Find all Pythagorean triples $x^2+y^2=z^2$ where $x=21$ Consider the following theorem:

If $(x,y,z)$ are the lengths of a Primitive Pythagorean triangle, then  $$x = r^2-s^2$$ $$y = 2rs$$ $$z = r^2+z^2$$ where $\gcd(r,s) = 1$ and $r,s$ are of opposite
  parity.

According to the previous theorem,My try is the following:
since $x = r^2-s^2$, $x$ is difference of two squares implying that $x \equiv 0 \pmod 4$. But $x=21 \not \equiv 0 \pmod 4$. Hence, there are no triangles having such $x$.
Is that right?
Added:
My argument is false here. Please refer to the appropriate answer.

Since $A$ may be any odd number $\ge3$ and we can find one or more triples for any odd leg $A\ge 3$ using a function of $(m,A).$
We know that $A=m^2-n^2\implies n=\sqrt{m^2-A}.$
$$\text{We can let }n=\sqrt{m^2-A}\text{ where }\lceil\sqrt{A}\space\rceil\le m\le \frac{A+1}{2}$$
$\text{Note: }n\in \mathbb{R}\implies \sqrt{A}\lt m\land n<m\implies m\le\frac{a+1}{2}$
$$\text{For A=21}\quad m_{min}=\lceil\sqrt{21}\space\rceil=5\qquad \qquad m_{max}\frac{22}{2}=11$$
Testing for $5\le m\le 11$, we find $\mathbf{integers}$ for $(m,n)=(5,2)\text{ and }(11,10)$
$$f(5,2)=(21,20,29)\qquad f(11,10)=(21,220,221$$
But $21=3*7$
$$\text{For A=3}\quad m_{min}=\lceil\sqrt{3}\space\rceil=2\quad m_{max}=\frac{4}{2}=2\quad \quad 7f(2,1)=7(3,4,5)=21,28,35$$
$$\text{For A=7}\quad m_{min}=\lceil\sqrt{7}\space\rceil=3\quad m_{max}=\frac{8}{2}=4\quad \quad 3f(4,3)=3(7,24,25)=21,72,75$$
