Count Number of Primes

Run Settings
LanguageJava
Language Version
Run Command
import static java.util.stream.IntStream.range; import static java.util.stream.LongStream.rangeClosed; import static java.lang.Math.sqrt; class PrimesCounter { private final static int MAX = 1000000; private long countPrimes(int max, boolean parallel) { return !parallel ? range(1, max).filter(this::isPrime).count() : range(1, max).parallel().filter(this::isPrime).count(); } private boolean isPrime(long n) { return n > 1 && rangeClosed(2, (long) sqrt(n)).noneMatch(divisor -> n % divisor == 0); } public static void main(String[] args) { long start; long count; long elapsed; PrimesCounter app = new PrimesCounter(); start = System.nanoTime(); System.out.println("Looking for primes below" + MAX); count = app.countPrimes(MAX, false); elapsed = System.nanoTime() - start; System.out.println("Found " + count + " in " + elapsed/1000000 + "ms"); start = System.nanoTime(); System.out.println("Looking for primes in parallel"); count = app.countPrimes(MAX, true); elapsed = System.nanoTime() - start; System.out.println("Found " + count + " in " + elapsed/1000000 + "ms"); } }
Editor Settings
Theme
Key bindings
Full width
Lines