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