优雅的质数生成方法
本文探讨如何以最优雅的方式生成质数列表。优雅的算法应具备清晰、简洁和高效的特点。
改进的埃拉托斯特尼筛法
一种方法是改进埃拉托斯特尼筛法。以下是一个体现优雅性的Java实现:
<code class="language-java">public static ArrayList<Integer> generatePrimes(int n) { ArrayList<Integer> primes = new ArrayList<>(); boolean[] isPrime = new boolean[n + 1]; Arrays.fill(isPrime, true); isPrime[0] = isPrime[1] = false; for (int i = 2; i * i <= n; i++) { if (isPrime[i]) { for (int j = i * i; j <= n; j += i) { isPrime[j] = false; } } } for (int i = 2; i <= n; i++) { if (isPrime[i]) { primes.add(i); } } return primes; }</code>
该算法通过迭代去除已找到质数的倍数,高效地识别出小于等于n的质数,确保精度和效率。
其他优雅的方案
除了改进的筛法,还可以考虑以下方法:
根据具体需求和对效率、简洁性和可读性的偏好,选择最合适的方法来构建优雅的质数生成算法。
以上是生成素数列表最优雅的方法是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!