hrefspace

 找回密码
 立即注册
搜索
热搜: PHP PS 程序设计
查看: 511|回复: 6

将单质数表为两数平方和的最快速算法

[复制链接]

585

主题

769

帖子

2007

积分

大司空

Rank: 5Rank: 5

积分
2007
发表于 2023-10-2 16:26:46 | 显示全部楼层 |阅读模式
最近论坛讨论的问题有点少,那我就出个问题吧,设p是质数,当p较大时,求
p=x^2+y^2的最快速算法,已知有sqrt(p)的连分式的PQa算法可以给出一个确定性的算法.不知还是否还有其它较好的算法。
回复

使用道具 举报

0

主题

195

帖子

166

积分

关内侯

Rank: 2

积分
166
发表于 2023-10-2 16:27:24 | 显示全部楼层
p=4n+1形式时才有解吧
回复

使用道具 举报

8

主题

206

帖子

44

积分

新手上路

Rank: 1

积分
44
发表于 2023-10-2 16:28:01 | 显示全部楼层
https://bbs.emath.ac.cn/forum.ph ... 125&fromuid=865
程序的代码我已经替你写好了
回复

使用道具 举报

1

主题

186

帖子

21

积分

新手上路

Rank: 1

积分
21
发表于 2023-10-2 16:28:10 | 显示全部楼层
个人觉得这是个好方法,https://www.ams.org/journals/mco ... -1972-0314745-6.pdf

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

0

主题

201

帖子

71

积分

关内侯

Rank: 2

积分
71
发表于 2023-10-2 16:28:47 | 显示全部楼层
以 p = 10^100 + 949 为例,使用 julia 验证上述结果(由于 10^100+949 是 8k+5 型素数,故选 c = 2)
a = big(10)^100 + 949; b = (a-1) >> 2; x0 = powermod(2, b, a); d = isqrt(a);
x1 = a % x0;
while x1 > d
  x2 = x0 % x1;
  x0, x1 = x1, x2
end
println((x1, x0 % x1))

得:(99697921470138519447541656418848509184628524016382, 7766881905507050845172598218029833369440123277895)
https://bbs.emath.ac.cn/forum.ph ... amp;page=1#pid78125 第 7 楼的结果一致。
回复

使用道具 举报

0

主题

180

帖子

37

积分

新手上路

Rank: 1

积分
37
发表于 2023-10-2 16:29:11 | 显示全部楼层
那你知道pell方程x^2-A*y^2=B如何求解吗?
回复

使用道具 举报

0

主题

192

帖子

159

积分

关内侯

Rank: 2

积分
159
发表于 2023-10-2 16:30:04 | 显示全部楼层
又找到了一个很牛叉的数论软件(还带代码),可以解你的问题  \(x^2 - dy^2\) = n,见 frattini(d,n)。
但它有说了The algorithm works only for small d and n,由此看来,你的问题除了试算外,有没有通用算法可能还要打个问号。

请见:http://www.numbertheory.org/calc/krm_calc.html#[56]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|hrefspace

GMT+8, 2024-11-22 15:56 , Processed in 0.062994 second(s), 23 queries .

Powered by hrefspace X3.4 Licensed

Copyright © 2022, hrefspace.

快速回复 返回顶部 返回列表