hejoseph 发表于 2025-5-23 10:29:23

本帖最后由 hejoseph 于 2025-5-23 10:50 编辑

设 $n$ 是 $4k+1$ 型素数,把 $\sqrt{n}$ 表示为循环连分数,循环节 $a_1,a_2,\cdots,a_{2m+1}$,把循环连分数 $$ 表示为
\[
\frac{p+\sqrt{n}}{q}
\]
的形式,则有 $n=p^2+q^2$。
例如 $\sqrt{5}$ 表示为循环连分数为 $$,循环节只有一位 $4$,循环连分数 $$ 值为
\[
2+\sqrt{5}
\]
所以 $5=1^2+2^2$。
$\sqrt{29}$ 表示为循环连分数为 $$,循环节为 $2,1,1,2,10$,循环连分数 $$ 值为
\[
\frac{2+\sqrt{29}}{5}
\]
所以 $29=2^2+5^2$。

nyy 发表于 2025-5-23 11:40:33

hejoseph 发表于 2025-5-23 10:29
设 $n$ 是 $4k+1$ 型素数,把 $\sqrt{n}$ 表示为循环连分数,循环节 $a_1,a_2,\cdots,a_{2m+1}$,把循环连 ...

你真牛!人工智能给了我类似的回答,但是他的回答只涉及到连分数。
然后搞出的结果,但是他的很多都是错的,
然后我让人工智能搞了一个比较大的素数,
结果他穷举起来。把人恶心了!
你的这个让我看明白了!至少看明白其中的过程

nyy 发表于 2025-5-23 11:45:45

hejoseph 发表于 2025-5-23 10:29
设 $n$ 是 $4k+1$ 型素数,把 $\sqrt{n}$ 表示为循环连分数,循环节 $a_1,a_2,\cdots,a_{2m+1}$,把循环连 ...

你的这个办法具有理论意义,但没有实际操作意义,
因为随着p的增大,计算量惊人的增加。
ContinuedFraction这是对应的mathematica函数,
你可以用p=10^20+129试试看

nyy 发表于 2025-5-23 11:53:05

hejoseph 发表于 2025-5-23 10:29
设 $n$ 是 $4k+1$ 型素数,把 $\sqrt{n}$ 表示为循环连分数,循环节 $a_1,a_2,\cdots,a_{2m+1}$,把循环连 ...

按照你的办法,先得到根号97的连分数。
ContinuedFraction
得到
{9, {1, 5, 1, 1, 1, 1, 1, 1, 5, 1, 18}}

FromContinuedFraction[{0, {1, 1, 1, 5, 1, 18, 1, 5, 1, 1, 1}}]
得到
\[\frac{1}{9} \left(\sqrt{97}-4\right)\]

nyy 发表于 2025-5-23 12:03:05

nyy 发表于 2025-5-23 11:53
按照你的办法,先得到根号97的连分数。

得到


Clear["Global`*"];(*mathematica11.2,win7(64bit)Clear all variables*)
p=601
aa=ContinuedFraction(*开根号的连分数*)
partb=aa[](*循环节*)
nn=Length(*循环节长度*)
mm=Floor(*长度的一半,取下整*)
bb={0,Join],partb[]]}(*对称的连分数*)
cc=FromContinuedFraction


以601为例子。
得到
\[\frac{1}{5} \left(\sqrt{601}-24\right)\]

nyy 发表于 2025-5-23 20:20:41

本帖最后由 nyy 于 2025-5-23 20:24 编辑

我明白了!
1楼里面的代码利用了拉格朗日恒等式,
一个是向量的内积。一个是向量的外积,

https://www.zhihu.com/question/429904466/answer/2509408995

针对的是这儿的
如何笔算将某些数分拆为两个平方数之和
https://bbs.emath.ac.cn/forum.php?mod=viewthread&tid=15803
(出处: 数学研发论坛)

northwolves 发表于 2025-5-23 23:03:43

NestWhile当然可以的
f :=NestWhile[{Mod[#[], #[]], #[]} &, {PowerMod, p}, #[]^2 > p &]; f

nyy 发表于 2025-5-24 06:22:27

将单质数表为两数平方和的最快速算法
https://bbs.emath.ac.cn/forum.php?mod=viewthread&tid=2836
(出处: 数学研发论坛)

原来这个问题在论坛上已经出现十几年了

nyy 发表于 2025-5-24 08:33:33

我有一个疑问:x^2=-1(mod p)在0到p之间有两个x,
难道这两个x,都能导致写成平方和?

hejoseph 发表于 2025-5-24 18:51:50

手工计算方法:以 $\sqrt{29}$ 得到的循环连分数 $$ 为 $x$,根据计算结果能得到
\begin{align*}
5+\frac{1}{2+\dfrac{1}{1+\dfrac{1}{x}}}=\sqrt{29}&\iff 2+\frac{1}{1+\dfrac{1}{x}}=\frac{1}{\sqrt{29}-5}=\frac{\sqrt{29}+5}{4}\\
&\iff 1+\frac{1}{x}=\frac{1}{\dfrac{\sqrt{29}+5}{4}-2}=\frac{\sqrt{29}+3}{5}\\
&\iff x=\frac{1}{\dfrac{\sqrt{29}+3}{5}-1}=\frac{\sqrt{29}+2}{5}
\end{align*}
或者直接用解方程的方法
\begin{align*}
x&=1+\frac{1}{2+\dfrac{1}{10+\dfrac{1}{2+\dfrac{1}{1+\dfrac{1}{x}}}}}=1+\frac{1}{2+\dfrac{1}{10+\dfrac{1}{2+\dfrac{x}{x+1}}}}=1+\frac{1}{2+\dfrac{1}{10+\dfrac{x+1}{3x+2}}}\\
&=1+\frac{1}{2+\dfrac{3x+2}{31x+21}}=1+\frac{31x+21}{65x+44}=\frac{96x+65}{65x+44}
\end{align*}
整理就得
\[
5x^2-4x-5=0
\]
解这个方程就得(舍去负根)
\[
x=\frac{2+\sqrt{29}}{5}
\]
第一种方法较为简单。
页: 1 [2] 3
查看完整版本: 如何把一个4k+1的素数表达成两个整数的平方和