代码
1 public static List<Integer> getPrimeNumber(int a) { 2 List<Integer> primeNumberList = new ArrayList<>(); 3 if (a < 2) { 4 return primeNumberList; 5 } 6 7 double sqrt; 8 Integer primeNumber; 9 // 默认是素数 10 boolean flag = true; 11 for (int number = 2; number < a; number++) { 12 sqrt = Math.sqrt(number); 13 for (int index = 0; index < primeNumberList.size(); index++) { 14 primeNumber = primeNumberList.get(index); 15 if (primeNumber > sqrt) { 16 primeNumberList.add(number); 17 // 防止下面重复添加 18 flag = false; 19 break; 20 } 21 if (number % primeNumber == 0) { 22 // 不是素数 23 flag = false; 24 break; 25 } 26 } 27 if (flag) { 28 primeNumberList.add(number); 29 } else { 30 // 默认是素数 31 flag = true; 32 } 33 } 34 35 return primeNumberList; 36 }
测试