Output all prime numbers up to a specified integer n.
void prime_sieve(int n, bool prime[]) {
prime[0] = false;
prime[1] = false;
int i;
for (i = 2; i <= n; i++)
prime[i] = true;
int limit = sqrt(n);
for (i = 2; i <= limit; i++) {
if (prime[i]) {
for (int j = i * i; j <= n; j += i)
prime[j] = false;
}
}
}
http://yuanhsh.iteye.com/blog/2186379- public List<Integer> findPrimeNumbers(int n) {
- boolean[] isPrime = new boolean[n+1];
- Arrays.fill(isPrime, 2, n+1, true);
- for(int i=2; i*i <= n; i++) {
- if(isPrime[i]) {
- for(int j = i; i*j <= n; j++) {
- isPrime[i*j] = false;
- }
- }
- }
- // output all prime numbers
- List<Integer> result = new ArrayList<>();
- for(int i=0; i<=n; i++) {
- if(isPrime[i]) {
- result.add(i);
- }
- }
- return result;
- }