Java //100以内的质数的输出(从2开始,到这个数-1结束为止,都不能被这个数本身整除)+优化

 1 //100以内的质数的输出(从2开始,到这个数-1结束为止,都不能被这个数本身整除)
 2         boolean isFlag = true;   //标识i是否被j除尽,修改其值
 3          
 4         for(int i =2; i<=100;i++)
 5         {
 6             for(int j = 2;j < i;j++)
 7             {
 8                 if(i % j == 0)
 9                 {
10                     isFlag = false;
11                 }
12             }
13             
14             if(isFlag == true)
15             {
16                 System.out.println(i);
17             }
18             //重置isFlag
19             isFlag = true; 
20         }
21         
22         //优化-----------------------------------------------------
23         
24         boolean isFlag1 = true;   //标识i是否被j除尽,修改其值
25         
26         //获取当前时间距离1970-01-01 00:00:00 的毫秒数
27         long statrs=System.currentTimeMillis();
28          
29         for(int i =2; i<=100;i++)
30         {
31             for(int j = 2;j < i;j++)
32             {
33                 if(i % j == 0)
34                 {
35                     isFlag1 = false;
36                     break;//优化一
37                 }
38             }
39             
40             if(isFlag1 == true)
41             {
42                 System.out.println(i);
43             }
44             //重置isFlag
45             isFlag1 = true; 
46         }
47         
48 
49         //获取当前时间距离1970-01-01 00:00:00 的毫秒数
50         long end=System.currentTimeMillis();
51         
52         System.out.println("所花费的时间为:"+(end - statrs));
53         
54         
55         
56         
57         //优化二 -----------------------------------------------------
58         
59                 boolean isFlag2 = true;   //标识i是否被j除尽,修改其值
60                 
61                 //获取当前时间距离1970-01-01 00:00:00 的毫秒数
62                 long statrs2=System.currentTimeMillis();
63                  
64                 for(int i =2; i<=100;i++)
65                 {
66                     //优化2   开根号
67                     for(int j = 2;j <= Math.sqrt(i) ;j++)
68                     {
69                         if(i % j == 0)
70                         {
71                             isFlag2 = false;
72                             break;//优化一
73                         }
74                     }
75                     
76                     if(isFlag2 == true)
77                     {
78                         System.out.println(i);
79                     }
80                     //重置isFlag
81                     isFlag2 = true; 
82                 }
83                 
84 
85                 //获取当前时间距离1970-01-01 00:00:00 的毫秒数
86                 long end2=System.currentTimeMillis();
87                 
88                 System.out.println("所花费的时间为:"+(end2 - statrs2));
89                 
90                 
91
 1     //方式二
 2 
 3         //boolean isFlag4 = true;   //标识i是否被j除尽,修改其值
 4         
 5         //获取当前时间距离1970-01-01 00:00:00 的毫秒数
 6         long statrs4=System.currentTimeMillis();
 7          
 8        label:    for(int i =2; i<=100;i++)
 9         {
10             //优化2   开根号
11             for(int j = 2;j <= Math.sqrt(i) ;j++)
12             {
13                 if(i % j == 0)
14                 {
15                 
16                     
17                     continue label;
18                     
19                 }
20             }
21             
22         
23                 System.out.println(i);
24         
25         }
26         
27 
28         //获取当前时间距离1970-01-01 00:00:00 的毫秒数
29         long end4=System.currentTimeMillis();
30         
31         System.out.println("所花费的时间为:"+(end4 - statrs4));

 

 

posted on 2021-08-28 18:22  Bytezero!  阅读(98)  评论(0编辑  收藏  举报