将素数表示为两个平方和的最快算法是什么?

发布于 2024-10-25 02:09:31 字数 115 浏览 5 评论 0原文

我可以使用两个循环来检查两个小于 p 素数的整数的所有组合,但效率非常低。有没有更好的算法来解决这个问题?有什么想法吗?

其中p mod 4 = 1

谢谢,

I could use two loops to check for all combinations of two integers that less than p prime, but it's very inefficient. Is there a better algorithm to approach this problem? Any idea?

Where p mod 4 = 1.

Thanks,

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

迟到的我 2024-11-01 02:09:31

您可以尝试使用 Hermite-Serret 算法。

您还可以在此 math.se 页面上找到很好的算法列表:https://math.stackexchange.com/questions/5877/efficiently-finding-two-squares-which-sum-to-a-prime

特别参见 Robin Chapman 的回答:https://math.stackexchange.com/questions/第5877章/5883#5883

看海 2024-11-01 02:09:31

您无需搜索所有组合。简单朴素实现的粗略轮廓是:

  • 考虑 [1..trunc(sqrt(p))] 范围内的每个整数 i。
  • 计算 sqrt(pi^2) 并检查它是否为整数。如果是这样,你就完成了。
  • 如果没有继续下一个i。

这足以满足您的需求吗?它对于相对较小的 p 来说效果很好,但对于密码学中使用的那种大素数来说显然会很慢。

You don't need to search for all combinations. A rough outline of a simple naive implementation would be:

  • Consider each integer i in the range [1..trunc(sqrt(p))].
  • Calculate sqrt(p-i^2) and check if it is an integer. If so you are done.
  • If not continue to the next i.

Would this suffice for your needs? It will work fine for relatively small p, but obviously would be slow for the sort of large primes used in cryptography.

冰之心 2024-11-01 02:09:31

好吧,我建议您重读费马 4n+1 定理

如果软件工程师使用正确的工具来完成工作,那么您就有简单的解决方案。我的 Mathematica 函数:

P[p_] := Reduce[-p + x^2 + y^2 == 0, {x, y}, Integers]

示例:

查找前几个素数 p 的解,其中 p 为 1 或 2 (mod 4)。

P /@ {2, 5, 13, 17, 29, 37, 41, 53, 61}

在此处输入图像描述

Well I could recommended you reread Fermat's 4n+1 Theorem.

If software engineers use right tools for the job, thy have simple solutions. My Mathematica function:

P[p_] := Reduce[-p + x^2 + y^2 == 0, {x, y}, Integers]

Examples:

Finding solutions for first few primes p which are 1 or 2 (mod 4).

P /@ {2, 5, 13, 17, 29, 37, 41, 53, 61}

enter image description here

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文