Section 14.1 A Complex Situation
Subsection 14.1.1 A new interpretation
Let's see another to interpret sums of squares. Suppose first that, as before,Example 14.1.1.
For instance, we could factor the prime number thirteen!!!
xxxxxxxxxx
print(3^2+2^2)
print( (3+2*i)*(3-2*i))
Definition 14.1.2. Gaussian integers.
The Gaussian Integers
This does assume that we can have such a symbol
Historical remark 14.1.3. Carl Friedrich Gauss.
These are named after our friend Gauss, who explored them a great deal, though others were at least incipiently aware of them.
There are so many stories about Gauss that one can hardly know where to begin. The most-quoted one is his quick solution to summing the numbers from
Gauss will come up again in Section 17.4 regarding solving congruences, and when we continue exploring prime numbers in Section 21.2. Annoyingly, he only published some of his many results (notably in number theory); most relevant here is that Gaussian integers is something he actually did publish about.

Subsection 14.1.2 Revisiting the norm
How can we decide whether the verb βto factorβ is legitimate to use in a given number system? In the Gaussian integers, the reason we can is that prime numbers can be defined for this new system as well.Fact 14.1.5.
Prime numbers in the Gaussian integers, or Gaussian primes, are of three possible forms:
Given a prime
of the form is prime.Given a prime
of the form is also prime.Given a prime
not of the form any factors and in corresponding to writing are prime (recall Theorem 13.5.5).

xxxxxxxxxx
def _(viewsize=10):
lattice_pts = [[i,j] for i in [-viewsize..viewsize] for j in [-viewsize..viewsize]]
plot_lattice_pts = points(lattice_pts,rgbcolor=(0,0,0),pointsize=2)
GG.<I> = GaussianIntegers()
Gaussian_primes = [ x for x in lattice_pts if GG(x[0]+x[1]*I).is_prime() ]
plot_Gaussian_primes = sum([polygon([(G[0]+1/2,G[1]+1/2), (G[0]+1/2,G[1]-1/2), (G[0]-1/2,G[1]-1/2), (G[0]-1/2,G[1]+1/2)],alpha=.6) for G in Gaussian_primes])
show(plot_Gaussian_primes+plot_lattice_pts, aspect_ratio=1)
pretty_print(html("Plot of Gaussian primes with coordinates less than {0} in absolute value".format(viewsize)))
Example 14.1.7.
The norm of
xxxxxxxxxx
ZZI.<I> = GaussianIntegers()
(1+I).is_prime()
Subsection 14.1.3 A different approach to sums of squares
The Gaussian integers allow a quite different approach to the fact primes of the formFact 14.1.8.
If
Proof.
We already know, from the proof of Lemma 13.3.3 that
is a square root of \(-1\) modulo \(p\text{.}\) But now, instead of doing geometry, let's look at what that means.
By definition of
we know that \(p\mid f^2+1\text{.}\) Since \(f^2+1\) is \(f^2-i^2\text{,}\) let's factor:
Clearly \(p=p+0i\) does not divide either \(f+i\) or \(f-i\) evenly in \(\mathbb{Z}[i]\text{,}\) but it does divide their product. So (crucially!), if we assume the Fundamental Theorem of Arithmetic still holds for Gaussian integers, then \(p\) factors in \(\mathbb{Z}[i]\) and has a prime divisor of the form \(a+bi\) (in the sense of Subsection 14.1.2) dividing \(f+i\) or \(f-i\text{.}\)
Given that \(a+bi\mid p\text{,}\) it's not hard to show that then \(a-bi\) also must divide \(p\text{.}\) We'll skip this (but see the discussion after Fact 14.1.5 for ideas).
To finish up, combine these facts to see that
and the factor \(a^2+b^2\) is not equal to one, since \(a+bi\) was a proper divisor of \(p\text{.}\) Since \(p\) is an integer prime, the only possibility is
Remark 14.1.9.
As a final note to the complex point of view, one may note that there is a way to view Pythagorean triples as Gaussian integers as well. In this case one notes that if
Most remarkably, a variant of this operation applied to primitive triples can be used to put a group multiplication on that set! See [E.7.29] for more details, such as the multiplication involved and the structure of the group, which an inquiring reader may wish to relate to Remark 3.4.8 and similar facts. (See also Exercise 15.7.21.)