【Java】计算某个数内的所有素数

代码

 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 }

测试

 

 

原文地址:https://www.cnblogs.com/xiaostudy/p/13470414.html