PHP Conference Japan 2024

gmp_nextprime

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

gmp_nextprime查找下一个素数

描述

gmp_nextprime(GMP|int|string $num): GMP

查找下一个素数

参数

num

一个GMP 对象,一个int,或者一个string,可以解释为一个数字,其逻辑与在gmp_init()中使用字符串进行自动基数检测(即base等于0时)相同。

返回值

返回大于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

注释

注意:

此函数使用概率算法来识别素数,得到合数的几率极小。

添加注释

用户贡献的注释 3 条注释

Tommy Lynge Jrgensen
8 年前
素数是正的、非零的数字,恰好有两个因数。不多不少。因此,测试负数实际上没有任何意义。
IceMetalPunk at gmail dot com
7 年前
负数 N 至少有四个因数:N*1=N 和 abs(N)*-1=N。因此,即使素数的定义中没有“自然数”(实际上是有的),任何负数也不会符合条件。因此,任何负数的下一个最大素数始终为 2。
匿名
8 年前
似乎 gmp_nextprime 对负数的处理总是返回 2。
To Top