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)
不,没有内置函数可以检查质数.
您发布的解决方案可以改进:i*i如果您只计算N一次的平方根,则可以避免.
如果您知道要检查的数字范围,可以使用筛子和地图,而不是重复计算 - http://en.wikipedia.org/wiki/Sieve_of_Eratosthenes
小智 6
简答:不,没有这样的功能.
唯一一次在标准中使用"prime"一词是26.5.3.2中的脚注,这mersenne_twister_engine是描述类模板的地方.脚注说:
274)该引擎的名称部分地指其周期的属性:对于适当选择的参数值,该周期与大的梅森素数密切相关.
如果存在这样的函数,则该标准将包含该单词的更多出现,因为它将使用它来描述该函数的行为.
| 归档时间: |
|
| 查看次数: |
15629 次 |
| 最近记录: |