素数是正的、非零的数字,恰好有两个因数。不多不少。因此,测试负数实际上没有任何意义。
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
gmp_nextprime — 查找下一个素数
返回大于num
的下一个素数,作为GMP数字。
示例 #1 gmp_nextprime() 例子
<?php
$prime1 = gmp_nextprime(10); // 大于10的下一个素数
$prime2 = gmp_nextprime(-1000); // 大于-1000的下一个素数
echo gmp_strval($prime1) . "\n";
echo gmp_strval($prime2) . "\n";
?>
以上示例将输出
11 2
注意:
此函数使用概率算法来识别素数,得到合数的几率极小。
负数 N 至少有四个因数:N*1=N 和 abs(N)*-1=N。因此,即使素数的定义中没有“自然数”(实际上是有的),任何负数也不会符合条件。因此,任何负数的下一个最大素数始终为 2。