如何在范围很大时找到素数?

时间:2014-07-04 21:50:01

标签: c algorithm

如何找到1到10 ^ 9之间的所有素数,我知道我们可以使用Sieve_of_Eratosthenes来获得更小的范围,但是当范围太大而等于10 ^ 6时会是什么?

1 个答案:

答案 0 :(得分:1)

最多10 ^ 9并不是什么大不了的事。首先,只看奇数(因为只有一个偶数素数)。其次,使用位数组,所以你只需要500万位或大约62兆字节。即使是简单的代码也应该在最多几秒内完成。

如果你走得更远,你可以筛选1到10 ^ 9的数字,然后从10 ^ 9 + 1到2 * 10 ^ 9等等。超过10 ^ 13它变得有趣,你需要付出更多的努力。