您的位置:首页 > 其它

判断一个数是否为素数

2014-12-10 12:09 330 查看
 

以前参加蓝桥杯时写的一个算法,刚才想了一下,个人感觉现在想不出优化的方案,记得当时也跟网上找的几个算法对比过,这个是比较优秀的。

  boolean prime(int num) {

int divisor = 3;
int testLimit = num;

if (num % 2 == 0 && num > 2)
return false;

while (testLimit > divisor) {
if (num % divisor == 0) {
return false;
}

testLimit = num / divisor;
divisor += 2;
}
return true;
}

当时是计算一个大数是否为素数,如果数据太多,会导致计算时间过长。

这段代码只是一个demo,如果数据过大也会超过int的范围,可以用long型解决,如果超过long的范围,就得另想办法

比如Java提供了处理大数的类BigInteger,这个类里面提供了方法判断一个数是否为素数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: