判断1个数是否为素数
判断一个数是否为素数
以前参加蓝桥杯时写的一个算法,刚才想了一下,个人感觉现在想不出优化的方案,记得当时也跟网上找的几个算法对比过,这个是比较优秀的。
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,这个类里面提供了方法判断一个数是否为素数