*/
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素数代码优化的信息别忘了在本站进行查找喔 。
推荐阅读
- 什么水冷配什么cpu,水冷买什么价位的
- 如何成为快手推广经理人,如何成为快手推广经理人呢
- 怎么下载2007版excel,怎么下载2007版word
- 直播小天才音乐软件,小天才听歌软件
- php处理数据库 php处理数据库太慢
- pg数据库拼接字符串,pg数据库两个字符串拼接
- jacobppt转pdf报错,jacob pdf转word
- js中字符型是什么意思,js字符类型
- python使用函数求1的简单介绍