|
|
1
6
有人提出了一些其他的方法,我认为它们很好,但这实际上取决于您需要在现场存储或计算多少。例如,如果你在一个非常大的数之后寻找下一个素数,那么使用埃拉托色尼的筛子可能就不那么好了,因为你需要存储的比特数。 或者,您可以检查(包括)3和sqrt(n)之间的所有奇数,对于每个大于输入数的奇数n,直到找到正确的数字。当然,当您发现它是复合的时,您可以停止检查。
如果你想要一个不同的方法,那么我建议使用
Miller-Rabin primality test
在输入数字上方的所有奇数上(假设输入为>1),直到找到质数。如果您遵循位于页面底部的数字列表
|
|
|
2
24
来源
:
维基百科
因此,如果给我一个数字,比如n,我就可以检查范围(n,2×n)[开区间,不包括n和2×n]。
|
|
|
3
7
我以前做过。 唯一的加法是伯特兰定理 Rajendra's Answer . 以及现成的代码 topcoder .
|
|
|
4
1
我一般认为有两种方法可以做到这一点。
也许这也有帮助(只需将2替换为给定的数字,将n替换为无穷大:d) finding all prime numbers between 2 and N |
|
|
5
0
我会有一个大的查找表,然后搜索给定的数字,然后按顺序用下一个回答。 如果给定数字的范围有一个已知的(合理的)上限,就可以很好地工作。 |
|
|
6
0
|
|
|
mattdub · 如何在ASCII和字典中找到最大素数? 3 年前 |
|
|
bob Glenn · 素数确定Javascript 13 年前 |
|
|
bbalchev · 根据整数的素因子对其进行排序 13 年前 |
|
|
Valentine Bondar · Python生成器返回停止迭代? 14 年前 |