Java 生成素数的更好方法是什么

Java 生成素数的更好方法是什么,java,Java,我写了一个生成素数的程序。有没有更好的方法?此外,我如何改进自己的方法 public static void main(String[] args) { ArrayList<Integer> primeNumbers = new ArrayList<Integer>(primeNumberGenerator(1000)); System.out.println(primeNumbers); } public st

我写了一个生成素数的程序。有没有更好的方法?此外,我如何改进自己的方法

public static void main(String[] args) {
        ArrayList<Integer> primeNumbers = new ArrayList<Integer>(primeNumberGenerator(1000));
        System.out.println(primeNumbers);
    
    }

    public static ArrayList<Integer> primeNumberGenerator(int range){
        
        ArrayList<Integer> primeNumbers = new ArrayList<Integer>();
        int brake = 0;
        int index = 0;

        for(int i = 2; i < range; i++){
            brake = 0;
            for(int p = 2; p < range; p++){
                if((i%p) == 0 && i != p && brake == 0){
                    brake = 1;
                }
            }
            if(brake == 0){
                primeNumbers.add(index, i);
                index += 1;
            }
            brake = 0;
        }
    return primeNumbers;
    }
publicstaticvoidmain(字符串[]args){
ArrayList素数=新的ArrayList(素数生成器(1000));
System.out.println(素数);
}
公共静态ArrayList primeNumberGenerator(整数范围){
ArrayList素数=新的ArrayList();
int制动器=0;
int指数=0;
对于(int i=2;i
您可以使用该方法生成时间复杂度更高的素数。

该算法有很多变体。查看维基百科:不要忽略
biginger.nextProbablePrime()
。正如上次你问这个问题时我所评论的:
brake
应该是一个布尔值;您的内部循环条件可能是
p*p