求一定范围内质数的优化
最初代码
long start = System.currentTimeMillis();
for (int i = 2; i < 10000; i++) {
boolean Flag = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
Flag = false;
}
}
if (Flag) {
System.out.println(i);
}
}
long end = System.currentTimeMillis();
System.out.println("花费的时间是"+(end-start));
优化之后
long start = System.currentTimeMillis();
for (int i = 2; i < 10000 ; i++ ){
boolean Flag = true;
//优化二:针对于本身就是质数的优化
for (int j = 2; j <= Math.sqrt(i); j++){
if ( i % j == 0 ){
Flag = false;
break;//优化一:针对于非质数进行优化
}
}
if(Flag){
System.out.println(i);
}
}
//获取当前的时间
long end = System.currentTimeMillis();
System.out.println("花费的时间是"+(end-start));

浙公网安备 33010602011771号