2020-03-16 07:50:12 +01:00
|
|
|
// This script uses the Sieve of Eratosthenes to calculate prime numbers.
|
2020-03-12 16:46:40 +01:00
|
|
|
|
2020-04-11 10:06:57 +02:00
|
|
|
let now = timestamp();
|
|
|
|
|
2020-03-16 07:50:12 +01:00
|
|
|
const MAX_NUMBER_TO_CHECK = 10_000; // 1229 primes <= 10000
|
2020-03-12 16:46:40 +01:00
|
|
|
|
|
|
|
let prime_mask = [];
|
|
|
|
prime_mask.pad(MAX_NUMBER_TO_CHECK, true);
|
|
|
|
|
2020-03-14 07:57:59 +01:00
|
|
|
prime_mask[0] = prime_mask[1] = false;
|
2020-03-12 16:46:40 +01:00
|
|
|
|
|
|
|
let total_primes_found = 0;
|
|
|
|
|
|
|
|
for p in range(2, MAX_NUMBER_TO_CHECK) {
|
|
|
|
if prime_mask[p] {
|
|
|
|
print(p);
|
|
|
|
|
|
|
|
total_primes_found += 1;
|
|
|
|
let i = 2 * p;
|
|
|
|
|
|
|
|
while i < MAX_NUMBER_TO_CHECK {
|
|
|
|
prime_mask[i] = false;
|
|
|
|
i += p;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
print("Total " + total_primes_found + " primes.");
|
2020-04-11 10:06:57 +02:00
|
|
|
print("Run time = " + now.elapsed() + " seconds.");
|