Java打印质数及其优化方法

下面是没有优化之前打印质数的代码:

package day02;

public class PrimeNumberTest {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    
boolean isFlag = true;
for(int i = 2;i<=100;i++) {
    for(int j = 2;j < i;j++) {
        if(i % j == 0) {
            isFlag = false;
        }
    }
    if(isFlag ==true) {
        System.out.println(i);
    }
    isFlag = true;
}

    }
}

接下来是优化之后的代码片段:

package day02;

public class PrimeNumberTest1 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    long start = System.currentTimeMillis();//记录编译开始时间
    boolean isFlag = true;
    int count=0;//记录个数
    for(int i = 2;i<=100000;i++) {
        for(int j = 2;j <= Math.sqrt(i);j++) {//优化二,对本身是质数的有效
            if(i % j == 0) {
                isFlag = false;
                break;//优化一,本身非质数有效
            }
        }
        if(isFlag ==true) {
            System.out.println(i);
            count++;
        }
        isFlag = true;
        
    }
    long end = System.currentTimeMillis();//记录编译结束时间
    System.out.println("所花费的时间:"+(end-start));
    System.out.println("质数的个数为:"+count);
        }
    }

学习阶段,不喜勿喷!

优化的不错,很有想法,加油💪

这算是自问自答吗 哈哈哈 写的不错