java素数代码优化 java素数程序( 二 )


*/
public boolean isPrimeNum_2(int num) {
// 2特殊处理
if (num == 2) {
return true;
}
// 识别小于2的数和偶数
if (num2 || num % 2 == 0) {
return false;
}
int max = num / 2;
for (int i = 3; imax; i += 2) {
if (num % i == 0) {
return false;
}
}
return true;
}
/**
* 在第二种方法上再次优化 , 利用数字的性质:br
* 一个数不是素数就是合数,那么一定可以由两个自然数相乘得到,其中一个大于或等于它的平方根 , br
* 一个小于或等于它的平方根,并且成对出现 。br
* 这样就可以把计算量大幅度减少
*/
public boolean isPrimeNum_3(int num) {
if (num == 2) {
return true;// 2特殊处理
}
if (num2 || num % 2 == 0) {
return false;// 识别小于2的数和偶数
}
double sqrt = Math.sqrt(num);
for (int i = 3; i = sqrt; i += 2) {
if (num % i == 0) {
return false;
}
}
return true;
}
/**
* Java中的BigInteger中已经写好了一个判断是否为质数的方法 , 直接用就可以了
*/
public boolean isPrimeNum_4(int num) {
BigInteger integer = BigInteger.valueOf(num);
【java素数代码优化 java素数程序】return integer.isProbablePrime(1);
}
public static void main(String[] args) {
Test_04 test_04 = new Test_04();
int num = 991;
System.out.println(test_04.isPrimeNum_1(num));
long startTime = System.currentTimeMillis();
for (int i = 0; i1000000; i++) {
test_04.isPrimeNum_1(num);
}
long endTime = System.currentTimeMillis();
System.out.println("第一种方法运行时间:" + (endTime - startTime) + "ms");
System.out.println(test_04.isPrimeNum_2(num));
startTime = System.currentTimeMillis();
for (int i = 0; i1000000; i++) {
test_04.isPrimeNum_2(num);
}
endTime = System.currentTimeMillis();
System.out.println("第二种方法运行时间:" + (endTime - startTime) + "ms");
System.out.println(test_04.isPrimeNum_3(num));
startTime = System.currentTimeMillis();
for (int i = 0; i1000000; i++) {
test_04.isPrimeNum_3(num);
}
endTime = System.currentTimeMillis();
System.out.println("第三种方法运行时间:" + (endTime - startTime) + "ms");
System.out.println(test_04.isPrimeNum_4(num));
startTime = System.currentTimeMillis();
for (int i = 0; i1000000; i++) {
test_04.isPrimeNum_4(num);
}
endTime = System.currentTimeMillis();
System.out.println("第四种方法运行时间:" + (endTime - startTime) + "ms");
}
}
输出结果:
true
第一种方法运行时间:2732ms
true
第二种方法运行时间:671ms
true
第三种方法运行时间:68ms
true
第四种方法运行时间:1064ms
java素数代码优化的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java素数程序、java素数代码优化的信息别忘了在本站进行查找喔 。

推荐阅读