Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 正下方的素数_Algorithm_Primes - Fatal编程技术网

Algorithm 正下方的素数

Algorithm 正下方的素数,algorithm,primes,Algorithm,Primes,我想计算一个数下面的素数。如何才能有效地做到这一点 我用了埃拉托斯坦筛,但失败了,因为我的数字在10^20范围内 还有其他算法吗 随机20位数字成为素数的概率约为1/20。如果你想得到x以下的最大素数,从x-1开始,对每个数字进行素数测试,一直往下,直到找到一个素数。下面是我给出的一个相关答案,并列出了一个高度可靠和极快的伪素数测试,应该足够了: 随机20位数字成为素数的概率约为1/20。如果你想得到x以下的最大素数,从x-1开始,对每个数字进行素数测试,一直往下,直到找到一个素数。下面是我给出

我想计算一个数下面的素数。如何才能有效地做到这一点

我用了埃拉托斯坦筛,但失败了,因为我的数字在10^20范围内


还有其他算法吗

随机20位数字成为素数的概率约为1/20。如果你想得到x以下的最大素数,从x-1开始,对每个数字进行素数测试,一直往下,直到找到一个素数。下面是我给出的一个相关答案,并列出了一个高度可靠和极快的伪素数测试,应该足够了:


随机20位数字成为素数的概率约为1/20。如果你想得到x以下的最大素数,从x-1开始,对每个数字进行素数测试,一直往下,直到找到一个素数。下面是我给出的一个相关答案,并列出了一个高度可靠和极快的伪素数测试,应该足够了:


用筛子的一段筛出n以下足够多的数字,这样你就可以合理地确定它包含一个素数,比如说几千个数字。然后用小的素数筛去大部分的非素数。对剩余的数字使用完全素性测试,或者是概率测试,或者是对20位数字进行除根测试,可能仍然是合理的


用于筛选的小素数的数量取决于筛选的相对成本与运行完全素数测试的相对成本。

使用一个筛子的一段来筛选n以下的足够多的数字,这样你就可以合理地确定它包含一个素数,比如说几千个数字。然后用小的素数筛去大部分的非素数。对剩余的数字使用完全素性测试,或者是概率测试,或者是对20位数字进行除根测试,可能仍然是合理的


你用多少个小素数进行筛选取决于筛选的相对成本与进行完全素数测试的相对成本。

从你的数字开始倒数,在你遇到的每个数字上都投一个a,第一个通过测试的人也应该给你一个好的候选人仔细看看。从你的数字开始倒数,在你遇到的每个数字上投一个a,第一个经得起考验的人也应该给你一个好的候选人仔细看看。概率约为1/20*log10,约为1/46。在开始大炮之前,用小素数进行试除法以廉价地去除大多数复合材料是可取的。一个简单的GCDx,30030涵盖了用小素数进行试除法30030=2*3*5*7*11*13。GCD不是比除法贵好几倍吗?我建议跳过可被2整除的偶数,跳过以可被5整除的5结尾的数,并且可能只在执行GCDx、3*7*11*13或类似操作之后才执行。请注意,让递减序列包含跳过所有且仅可被2、3、5甚至7整除的数字以及可能更多的数字应该不会太困难。概率约为1/20*log10,约为1/46。在开始大炮之前,用小素数进行试除法以廉价地去除大多数复合材料是可取的。一个简单的GCDx,30030涵盖了用小素数进行试除法30030=2*3*5*7*11*13。GCD不是比除法贵好几倍吗?我建议跳过可被2整除的偶数,跳过以可被5整除的5结尾的数,并且可能只在执行GCDx、3*7*11*13或类似操作之后才执行。请注意,让递减序列包含跳过所有且仅可被2、3、5甚至7整除的数字以及可能更多的数字应该不会太困难。