Here is the way to generate all relatively prime pythagorean triples:

Theorem:
    Let m and n be positive integers so that
    [1] m > n
    [2] m + n is odd
    [3] m and n are relatively prime

    Then,
    [4] a = m^2 - n^2, b = 2mn, c = m^2 + n^2
    gives all positive, relatively prime a, b, and c so that
    [5] a^2 + b^2 = c^2.

Proof:
Suppose a, b, and c are positive, relatively prime, and a^2 + b^2 = c^2.

Because (2k)^2 = 4k^2 and (2k+1)^2 = 4(k+1)k + 1, the square of an even
integer must be 0 mod 4 and the square of an odd integer must be 1 mod 4.

At least one of a and b must be odd; otherwise a, b, and c would share a
common factor of 2.  If both are odd, then c^2 would need to be 2 mod 4,
which is impossible.  Thus, one must be even and the other must be odd.
This means that c must be odd.  Without loss of generality, let b be even.

Let M = (c+a)/2 and N = (c-a)/2.  Then

    [6] a = M - N
    [7] c = M + N
    [8] b^2 = 4MN

Thus, we have that M > N > 0 and one of M and N must be even and the other
must be odd.  Furthermore, gcd(M,N) divides a, b, and c; thus, gcd(M,N) = 1.
Since b^2 = 4MN and gcd(M,N) = 1, both M and N must be perfect squares.  Let
M = m^2 and N = n^2, where m and n are positive; then, [1], [2], [3], and [4]
are satisfied.

Suppose [1], [2], [3], and [4] are satisfied.  Then [5] is satisfied:

    a^2 + b^2 = (m^2 - n^2)^2 + (2mn)^2
              = m^4 - 2 m^2 n^2 + n^4 + 4 m^2 n^2
              = m^4 + 2 m^2 n^2 + n^4
              = (m^2 + n^2)^2
              = c^2

Furthermore, a and b are relatively prime since

    gcd(a,b) = gcd(m^2-n^2,2mn)
             | gcd(m-n,2) gcd(m-n,m) gcd(m-n,n) gcd(m+n,2) gcd(m+n,m) gcd(m+n,n)
             = gcd(m+n,2)^2 gcd(n,m)^4
             = 1

QED

Rob Johnson