gpt4 book ai didi

primes - 如何找到一个数作为素数之和?

转载 作者:行者123 更新时间:2023-12-01 09:31:38 25 4
gpt4 key购买 nike

让我们看看我们想要找到 1 到 1000 之间的所有数字,这些数字表示为两个素数之和。例如 8 = 3+5, 24 = 13+11

现在这可以通过迭代 1 到 1000 之间的素数列表在 O(n^2) 中完成。

有没有在小于 O(n^2) 的时间内做同样的事情。有没有一种方法可以在线性时间内做到这一点?

最佳答案

对于我们现在知道的所有偶数,它们都可以表示为 2 个素数之和(见 Goldbach's conjecture)

对于所有的奇数,若能表示为2个素数之和,其中一个必定为2,另一个必定为奇素数。

所以总数应该是 (1000/2 - 1) + (素数从 3 到 997),

其中,

(1000/2 - 1) 是系列 4、6、8、10...

(素数从 3 到 997)是系列的总数 5(2+3), 7(2+5), 9(2+7), 13(2+11) ...

关于primes - 如何找到一个数作为素数之和?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14720904/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com