From 968ac86d429a773d1c5905e88ca684feb90a3842 Mon Sep 17 00:00:00 2001 From: ddaniel27 <67126972+ddaniel27@users.noreply.github.com> Date: Tue, 18 Oct 2022 09:20:31 -0500 Subject: [PATCH 1/2] [CREATE] Add another sieve algorithm This algorithm is a distinct implementation of the current sieve in the repo because this returns an array of integers that only contain prime numbers. --- Maths/SieveOfEratosthenesIntArray.js | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 Maths/SieveOfEratosthenesIntArray.js diff --git a/Maths/SieveOfEratosthenesIntArray.js b/Maths/SieveOfEratosthenesIntArray.js new file mode 100644 index 0000000000..7de49ffb73 --- /dev/null +++ b/Maths/SieveOfEratosthenesIntArray.js @@ -0,0 +1,22 @@ +/** + * Function to get all prime numbers below a given number + * This function returns an array of prime numbers + * @see {@link https://en.wikipedia.org/wiki/Sieve_of_Eratosthenes} + */ + +function sieveOfEratosthenes (max) { + const sieve = [] + const primes = [] + + for (let i = 2; i <= max; ++i) { + if (!sieve[i]) { // If i has not been marked then it is prime + primes.push(i) + for (let j = i << 1; j <= max; j += i) { // Mark all multiples of i as non-prime + sieve[j] = true + } + } + } + return primes +} + +export { sieveOfEratosthenes } From 648da2647e8afd1effefddf61dcefa03ca6b0d7f Mon Sep 17 00:00:00 2001 From: Daniel Dorado Date: Tue, 18 Oct 2022 11:54:56 -0500 Subject: [PATCH 2/2] [UPDATE] Add tests for SieveOfEratosthenesIntArray --- Maths/test/SieveOfEratosthenesIntArray.test.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 Maths/test/SieveOfEratosthenesIntArray.test.js diff --git a/Maths/test/SieveOfEratosthenesIntArray.test.js b/Maths/test/SieveOfEratosthenesIntArray.test.js new file mode 100644 index 0000000000..eeb6dd9d8b --- /dev/null +++ b/Maths/test/SieveOfEratosthenesIntArray.test.js @@ -0,0 +1,12 @@ +import { sieveOfEratosthenes } from '../SieveOfEratosthenesIntArray' +import { PrimeCheck } from '../PrimeCheck' + +describe('should return an array of prime numbers', () => { + it('should have each element in the array as a prime numbers', () => { + const n = 100 + const primes = sieveOfEratosthenes(n) + primes.forEach(prime => { + expect(PrimeCheck(prime)).toBeTruthy() + }) + }) +}) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy