内置主要检查功能

Dev*_*yal 7 c++

C++是否有任何内置函数来检查数字是否为素数.如果是,那么在哪个库?

以下是我的实施.但只是看看是否有任何内置功能.在Google上搜索只会提供基于用户的实现.

int isprime(int N){
    if(N<2 || (!(N&1) && N!=2))
        return 0;
    for(int i=3; i*i<=N; i+=2){
        if(!(N%i))
            return 0;
    }
    return 1;
}
Run Code Online (Sandbox Code Playgroud)

Luc*_*ore 7

不,没有内置函数可以检查质数.

您发布的解决方案可以改进:i*i如果您只计算N一次的平方根,则可以避免.

如果您知道要检查的数字范围,可以使用筛子和地图,而不是重复计算 - http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes


小智 6

简答:不,没有这样的功能.

唯一一次在标准中使用"prime"一词是26.5.3.2中的脚注,这mersenne_twister_engine是描述类模板的地方.脚注说:

274)该引擎的名称部分地指其周期的属性:对于适当选择的参数值,该周期与大的梅森素数密切相关.

如果存在这样的函数,则该标准将包含该单词的更多出现,因为它将使用它来描述该函数的行为.