,但 不能写成两个整数的平方和。它们都被 整除,所以“有没有某类素因子”还不够。真正决定结果的是这个素因子在分解中出现了多少次。
形式陈述
设 ,按整数唯一素因子分解理路算术基本定理Fundamental theorem of arithmetic每个大于一的整数都能按次序无关且唯一地分解为素数乘积。写成
各 是互异奇素数,,出现的指数 为正整数。空乘积规定为一。
两平方和定理断言
这里允许某个坐标为零,也允许两坐标相等。例如 、 都包括在内。零单独有表示 ;负整数没有表示,不属于上面使用正整数分解的陈述。
证明会同时得到高斯环中的三种素数行为:
- ,只有一个高斯素因子方向,出现两次
- 时,,其中 ,两个共轭因子不互为单位倍
- 时, 在 中仍是素元,它的范数是
“方向”在这里仅指忽略单位倍后的素因子,不是另一个数学对象。
直觉
为什么3模4素因子只能成对进入
先用二次剩余理路二次剩余Quadratic residue模奇素数同余于某个平方的非零剩余类。的已知判据:对奇素数 , 是模 的平方,当且仅当 。
若 且 ,假如 ,就能除以 ,得到 ,矛盾。因此 ,再由 得 。于是
每发现一个 ,实际都可以从两坐标中各提出一个 ,从总数中提出 。反复执行, 中 的指数只能为偶数。这证明了必要性,也给出无解时的短证书:指出某个3模4素数的指数为奇数即可。
从模平方根制造一个高斯因子
现在令 为素数,选整数 使 。在高斯整数环理路高斯整数的精确算术Gaussian integers · 高斯整数 · Gaussian integer arithmetic把整数格点看成可整除的复数,用范数下降计算GCD与Bézout系数,并以显式核验完成高斯商环中的约简和求逆。中计算
要证明 ,必须排除两个极端:它不能是单位,也不能与 互为单位倍。
若它是单位,Bézout等式给出 。两边乘 ;因为 ,右边都被 整除,便推出 。一个普通整数 整除高斯整数时必须整除其两个坐标,可是这里虚部是 ,矛盾。
若 与 互为单位倍,则由 得 ,同样与虚部为一矛盾。另一方面,,所以 是 的正因子。排除 和 后,只剩
写 ,就构造出 。这个证明没有先猜平方和;GCD把一个模同余解变成了整数等式。
分裂表为什么没有遗漏
范数为普通素数的高斯整数必不可约:若分成两个非单位,范数会把一个素数分成两个大于一的整数。高斯环是Euclidean域,因而是唯一分解整环理路唯一分解整环Unique factorization domain · UFD每个非零非单位元素都能唯一地分解为不可约元乘积的整环。,不可约元在这里也是素元。因此上面得到的 及其共轭都是高斯素元。
它们不会相伴。若 与 相差 或 ,分别迫使一个坐标为零,或 。前者使奇素数 成为整数平方,后者使它等于 ,都不可能。
若 在高斯环可约,取非单位分解 。范数乘积为 ,两个范数只能都为 ,于是 是两平方和,与刚才的必要性矛盾。因此它不可约,也就是素元。对 ,直接用 和 即可。
最后,任意高斯素元 都整除整数 。将这个正整数分成普通素数,素元性迫使 整除其中某一个。因此逐一分解普通素数已经覆盖全部高斯素元,不会还藏着第四类。
将素数答案拼成一般整数
两个范数之积还是范数,展开就是
,每个1模4素数刚才已构造为两平方和,而 。当所有 为偶数时,对这些因子逐个使用乘法公式,便得到 的表示,完成充分性证明。
例子与边界
没有3模4素因子,因此可表示。实际计算
取范数就得 。若将最后一个因子换成共轭,得到 ,于是另有 。判定定理保证存在,但本身还没有数清全部表示;这由下一页承担。
可表示, 不可表示。第二个例子还说明,仅检查 不够:,却有两个各出现一次的3模4素因子。局部的模4筛选只提供必要条件,不等于完整素因子判定。
“可表示”也不等于“坐标互素”。 的任何表示都被 同时整除。若要求本原表示,需另外禁止所有3模4素因子,并要求 ;这个更严格的条件将在表示计数与本原性理路两平方和的表示计数与本原性Two-square representation count · Jacobi two-square formula · 两平方和表示数通过分配共轭高斯素因子的指数计数并枚举两平方和,区分有序带符号、本原和正无序表示,处理坐标轴与对角线的特殊轨道。中证明。
推论与应用
哪种证书能独立复查
存在性证书最短可以只是整数对 :核验 即可,不需要相信找到它的过程。若还要解释如何生成,保留每个1模4素因子的模平方根、GCD除法等式和范数乘积,就能逐步检查构造。
无解证书则可给出 ,其中 为素数且 。乘法核验、素性证书和一次不整除检验共同说明指数确实为奇数。不能只列出一个未经确认是素数的3模4因子,因为复合因子的指数没有同样作用。
一般整数的判定依赖它的素因子分解,不能把分解成本隐藏在“检查指数”四个字里。若已经给出 的模平方根,Cornacchia算法理路Cornacchia 算法:两平方和构造Cornacchia algorithm · Cornacchia sum-of-two-squares algorithm · Cornacchia 两平方和算法给定−1的模平方根,以截断欧几里得余数链构造本原两平方和,用余数和系数双不变量证明平方根阈值后的结果恰好等于模数。可以直接构造本原两平方和;这是另一种输入承诺,不意味着一般因数分解因此变得容易。
参考资料
- Ben Lynn,Sum of Two Squares:通过高斯唯一分解证明1模4素数的两平方和及一般整数条件。
- Keith Conrad,The Gaussian Integers,§9,Theorems 9.7、9.10:高斯素元分类与两平方和判据。本文另外展开模平方根到GCD范数的两个排除步骤。
- G. H. Hardy、E. M. Wright,An Introduction to the Theory of Numbers,第6版,Oxford University Press,2008,Ch.XX:两平方和及表示问题。