取n < m且满足(n & 1) ^ (m & 1)为1(这里的^为异或,此表达式说明二者奇偶不同),同时gcd(n, m) = 1(即二者互素),则可得到满足sqr(a) + sqr(b) = sqr(c)(其中sqr()表示平方)的勾股数组:
a = sqr(m) – sqr(n)
b = 2nm
c = sqr(m) + sqr(n)
如果按照顺序枚举满足上述条件(奇偶不同的互素n < m二元组(n, m)),就可以得到所有的本源勾股数组,同时它们的整数倍也是勾股数组。这个方法可以取得所有的勾股数组。
gcd(a, b) = gcd(a, c) = gcd(b, c) = gcd(a, b, c)
对于任何大于1的正整数x,sqr(x) + 1, sqr(x) – 1以及2x一定构成勾股数组。
任取大于3的奇数a,平方后,除以2取结果向下取整得到b,向上取整得到c,这三个数a, b, c必然构成勾股数组,且保证最小数a为奇数,但是不一定是本源勾股数组。