Thursday, February 6, 2025

Prime number test

 import java.util.*;


public class Sieve {
    public static void main(String[] args) {
        int n = 2000000;
        long start = System.nanoTime();
        BitSet bitSet = new BitSet(n+1);
        int i;
        for(i=2;i<=n;i++){
            bitSet.set(i);
        }
        i=2;
        while(i*i<=n){
            if(bitSet.get(i)){
                int k = i*i;
                while(k<=n){
                    bitSet.clear(k);
                    k+=i;
                }
            }
            i++;
        }
        long end = System.nanoTime();
        System.out.println(bitSet.cardinality()+" primes");
        System.out.println( (end-start)/1000000 + " milliseconds");
    }
}

148933 primes 25 milliseconds

No comments:

Post a Comment