Java_关于求质数的最优化方案

 1 /*
 2  求质数的优化方案
 3  */
 4 package first_1;
 5 
 6 public class primeNumberTest1 {
 7     public static void main(String[] args) {
 8         
 9         boolean isFlag = true;//标识i是否被j除尽,一旦除尽,修改其值
10         int count = 0;//记录质数的个数
11         
12         //获取当前时间距离1970-01-01 00:00:00的毫秒数
13         long start = System.currentTimeMillis();
14         
15         for (int i = 2; i <= 100000; i++) {//遍历100000以内的自然数
16             
17             //优化二:对本身是质数的自然数是有效的。
18             //for (int j = 2; j < i; j++) {//j:被i去除
19             for (int j = 2; j <= Math.sqrt(i); j++) {//j:被i去除
20                 if (i % j == 0) {
21                     isFlag = false;
22                     break;//优化一:只对本身非质数的自然数是有效的。
23                 }
24             }
25             if (isFlag == true) {//i被j除尽
26                 System.out.println(i);
27                 count++;
28             }
29             //重置isFlag
30             isFlag = true;
31         }
32         
33         //获取当前时间距离1970-01-01 00:00:00的毫秒数
34         long end = System.currentTimeMillis();
35         System.out.println("质数的个数为:" + count);
36         System.out.println("所花费的时间为:"  + (end - start));//17110 - 优化一:1546 - 优化二:103
37     }
38 
39 }

关于质数的几个求解方案,每次优化都会提升运算效率

你可能感兴趣的:(Java_关于求质数的最优化方案)