nthprime

发现n '或计算质数数目小于给定值。

1.1 k下载

更新2010年3月24日

查看许可协议

我绝对没有理由写这段代码中,除了它是有趣的去写。在一个空闲的时刻,我不知道如何可以有效地计算出n '从'序列,给出了指数n。

是的,有人可能会使用素数的函数,它是足够小的素数集相当快。但是质数本身并不能解决这个问题。质数质数的完整列表返回小于或等于某个值。所以你可能会叫质数,印第安纳州,你有太少的质数生成特定的质数,你想要的。更糟糕的是,假设你想找到P (1 e8) ?是非常低效的生成100000000个质数的完整列表,只需要最后一个元素的列表。

一个密切相关的问题是问有多少个质数小于给定值。我们可以通过元素个数(质数(K)),但如果K数量非常大,也许2 ^ 32一样大,叫质数需要太长时间来执行。

nthprime函数有效地解决这两个问题。例如,P(12345678)是什么?

nthprime (123456)
ans =
1632899

看到它是质数。

isprime (1632899)
ans =
1

同样,我们可以确认它是123456个'质数的完整序列。

元素个数(质数(1632899))
ans =
123456年

找到质数编号[1 100 1000 10000 100000 1000000 10000000 1000000)

p = nthprime (10 ^ (0:8))
p =
2 29 541 7919 104729 1299709 15485863 1299709 2038074743

nthprime相当有效。例如,有7603553质数小于2 ^ 27日,但计算这些质数的完整列表可以是一个大的任务。如果由于某种原因,你只是想知道最后名单上,调用nthprime的成本远低于时间计算整个列表。

抽搐,p =质数(2 ^ 27);toc
运行时间是4.517565秒。

抽搐,体= nthprime (7603553); toc
运行时间是0.003868秒。

最后,nthprime可以与质数高达2 ^ 32,而启动函数运行的蒸汽远低于这个数字。大约有2 e8质数低于2 ^ 32。确切地说,我们可以使用nthprime告诉我们有多少:

nthprime (2 ^ 32, 1)
ans =
203280221

因此,第二个参数允许我们指定nthprime的操作。调用nthprime (K, 1)是一样的元素个数(质数(K))。但它是更高效的大型的K值。

再一次,我绝对没有这段代码的目标,没有理由写了,除了工作我如何解决这个问题本身。写的代码使用一个相对较小的数据库的质数本地化问题,然后用一个简单的'筛上。

引用作为

约翰D 'Errico (2023)。nthprime(//www.tatmou.com/matlabcentral/fileexchange/27073-nthprime), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R2010a
兼容任何释放
平台的兼容性
窗户 macOS Linux
类别
找到更多的在开始使用MATLAB帮助中心MATLAB的答案
标签添加标签
确认

启发:nextprime

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

SequenceOfPrimes /

版本 发表 发布说明
1.0.0.0