【一句话证明】费马平方和定理:奇素数能表示为两平方和当且仅当模4余1
链接
一句话证明
必要性是显然的:一个平方数模 \(4\) 余 \(0\) 或 \(1\),所以模 \(4\) 余 \(3\) 的数不可能拆成两平方和。
充分性:
D.Zagier 的一句话证明(设这个模 \(4\) 余 \(1\) 的素数为 \(p\)):
定义在有限集 \(S=\{(x,y,z)\in\mathbb N^3:x^2+4yz=p\}\) 上的对合
\[(x,y,z)\to \begin{cases} (x+2z,z,y-x-z)& ,x<y-z \\ (2y-x,y,x-y+z)& ,y-z<x<2y \\ (x-2y,x-y+z,y)& ,2y<x \end{cases} \]恰好有一个不动点,故 \(|S|\) 为奇数,因此对合 \((x,y,z)\to (x,z,y)\) 同样也有一个不动点。
解析
设上面这个映射为 \(f\),按上述映射分类将 \(S\) 划分成三个子集分别为 \(A_0,A_1,A_2\)。
由于 \(p\) 是素数,所以上面用了四个小于号(表示 \(x\) 取不到 \(y-z\) 或 \(2y\),证明不难)是合法的。
不难验证 \(A_0,A_1,A_2\) 通过 \(f\) 分别映射到 \(A_2,A_1,A_0\),所以不动点不存在于 \(A_0,A_2\)。
将 \(A_1\) 按 \(x\) 是否等于 \(y\) 划分成 \(B_0(x=y),B_1(x\ne y)\)。
考察 \(B_1\) 中 \(x\) 的变化,可知 \(B_1\) 中不存在不动点。
\(B_0\) 中的元素要满足 \(x^2+4xz=x(x+4z)=p\),由于 \(p\) 是模 \(4\) 余 \(1\) 的素数,得 \(B_0=\{(1,1,(p-1)/4\}\),即 \(|S|\) 唯一一个不动点。
不动点有且仅有一个可以得到 \(|S|\) 为奇数(其他都两两匹配了),即 \(x^2+4yz=p\) 的非负整数解有奇数个。
而若 \((x,y,z)\) 为解,则 \((x,z,y)\) 也为解(本质是 \(S\) 集合上另一种对合),而 \(|S|\) 为奇数,得到这个对合也有不动点,而 \((x,y,z)\to (x,z,y)\) 不动等价于 \(y=z\)。
课后练习
为什么将奇素数变为奇数就不再适用?(比如说 \(21\) 就不能表示为两平方和)
尝试用对合的方法证明正整数为完全平方数当且仅当其因子个数为奇数。
哪些正整数能表示为两平方和?(详见顶部链接)
CF113C Double Happiness
本文来自博客园,作者:ShaoJia,版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。