nextprime

版本 1.3.0.0 (3.3 KB) 作者: John D'Errico
For any given number (also vpi numbers), find the next prime number in the sequence of primes.
2.7K 次下载
更新时间 2009/5/14

查看许可证

This is actually a tool in my vpi toolbox, but it works quite nicely on any number. As such, I decided it would make sense to submit the function also separately.

tic,nextprime(1000000000),toc
ans =
1000000007
Elapsed time is 0.006276 seconds.

A partial sieve scheme is used to avoid testing the primality of too many numbers. This makes it more efficient.

You can use it on lists of numbers too.

nextprime(1000:100:2000)
ans =
1009 1103 1201 1301 1409 1511 1601 1709 1801 1901 2003

You can search in either direction, above or below the starting point too.

nextprime(43420000,'above')
ans =
43420007

nextprime(43420000,'below')
ans =
43419977

The limit for nextprime when applied to double precision numbers is now 2^46. Thus you cannot find the next prime above 2^46, unless you are working with vpi numbers.

>> nextprime(2^47)
??? Error using ==> nextprime at 89
The maximum value of N (for numeric input) allowed is 2^46.

Instead, apply nextprime to any integer or set thereof as vpi numbers. This works perfectly, but you will need to install my vpi toolbox.

>> nextprime(vpi(2).^[12;47;53;86])
ans =
4099
140737488355333
9007199254740997
77371252455336267181195291

引用格式

John D'Errico (2024). nextprime (https://www.mathworks.com/matlabcentral/fileexchange/23846-nextprime), MATLAB Central File Exchange. 检索来源 .

MATLAB 版本兼容性
创建方式 R2007b
兼容任何版本
平台兼容性
Windows macOS Linux
类别
Help CenterMATLAB Answers 中查找有关 Number Theory 的更多信息
标签 添加标签
致谢

参考作品: Variable Precision Integer Arithmetic

启发作品: nthprime

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
版本 已发布 发行说明
1.3.0.0

Modification to allow inputs up to 2^46 as numeric. Also did some minor cleanup, better error messages.