我正在做作业以尽可能多地生成素数。 我用 Eratosthenes筛选来生成小于10,000,000的素数。我想生成更多。如何生成更多素数?
答案 0 :(得分:0)
对于小 n ,分段的Eratosthenes筛子应该可以工作。对于大型 n ,用轮子生成候选者然后用Miller-Rabin进行测试。小到大之间的界限取决于您的愿望和预算。我讨论在my blog生成第一个十亿个素数。
答案 1 :(得分:0)
虽然有很多算法可以找到素数,但是你最大的收获来自于Eratosthenes的Sieve,因为你为你测试的每个数字花费O(log n * log log n)次。所以为了获得更大,你想要优化你的Eratosthenes的筛子,而且很可能你的问题是记忆。请考虑以下优化: