快速找出2到n所有的素数

来源:互联网 发布:大鸿米店 知乎 编辑:程序博客网 时间:2024/06/16 04:27
public static ArrayList<Integer> primeNumbers(int n) {if (n < 2) return null;ArrayList<Integer> list = new ArrayList<Integer>();boolean[] prime = new boolean[n + 1];for (int i = 2; i < n + 1; i++) {prime[i] = true;}for (int i = 2; i < Math.sqrt(n);i++) {if (prime[i]) {for (int j = i * i; j <= n; j += i) {prime[j] = false;}}}for (int i = 2; i <= n; i++) {if (prime[i] == true) {list.add(i);}}return list;}

Detailed introduction of this method: http://en.wikipedia.org/wiki/Sieve_of_eratosthenes
原创粉丝点击