From 1ce4168664768c2312df15861c780670c70d2318 Mon Sep 17 00:00:00 2001 From: Thivagar Manickam Date: Thu, 6 May 2021 21:28:40 +0530 Subject: [PATCH 1/2] Project euler problem 10 solution and test script --- Project-Euler/Problem10.js | 22 ++++++++++++++++++++++ Project-Euler/test/Problem10.test.js | 16 ++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 Project-Euler/Problem10.js create mode 100644 Project-Euler/test/Problem10.test.js diff --git a/Project-Euler/Problem10.js b/Project-Euler/Problem10.js new file mode 100644 index 000000000..0e0e0ef5b --- /dev/null +++ b/Project-Euler/Problem10.js @@ -0,0 +1,22 @@ +// https://projecteuler.net/problem=10 + +const isPrime = (number) => { + let flag = true + for (let j = number - 1; j >= 2; j--) { + if (number % j === 0) { + flag = false + } + } + return flag +} + +const calculateSumOfPrimeNumbers = (maxNumber) => { + let sum = 0 + for (let i = maxNumber - 1; i >= 2; i--) { + if (isPrime(i) === true) { + sum += i + } + } + return sum +} +export { calculateSumOfPrimeNumbers } diff --git a/Project-Euler/test/Problem10.test.js b/Project-Euler/test/Problem10.test.js new file mode 100644 index 000000000..2c1545cd1 --- /dev/null +++ b/Project-Euler/test/Problem10.test.js @@ -0,0 +1,16 @@ +import { calculateSumOfPrimeNumbers } from '../Problem10' + +describe('checkAnagram', () => { + it('Return the sum of prime numbers upto but less than 14', () => { + const SUT = calculateSumOfPrimeNumbers(14) + expect(SUT).toBe(41) + }) + it('Return the sum of prime numbers upto but less than 10', () => { + const SUT = calculateSumOfPrimeNumbers(10) + expect(SUT).toBe(17) + }) + it('Return the sum of prime numbers upto but less than 100', () => { + const SUT = calculateSumOfPrimeNumbers(100) + expect(SUT).toBe(1060) + }) +}) From 311c86a1cf85cfefe9a23794eb4879ba8c2dec69 Mon Sep 17 00:00:00 2001 From: Thivagar Manickam Date: Sat, 8 May 2021 10:37:35 +0530 Subject: [PATCH 2/2] Updated the problem10 solution --- Project-Euler/Problem10.js | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/Project-Euler/Problem10.js b/Project-Euler/Problem10.js index 0e0e0ef5b..9d90ee5c3 100644 --- a/Project-Euler/Problem10.js +++ b/Project-Euler/Problem10.js @@ -1,19 +1,21 @@ // https://projecteuler.net/problem=10 const isPrime = (number) => { - let flag = true - for (let j = number - 1; j >= 2; j--) { + if (number === 2) return true + if (number % 2 === 0) return false + + for (let j = 3; j * j <= number; j += 2) { if (number % j === 0) { - flag = false + return false } } - return flag + return true } const calculateSumOfPrimeNumbers = (maxNumber) => { let sum = 0 for (let i = maxNumber - 1; i >= 2; i--) { - if (isPrime(i) === true) { + if (isPrime(parseInt(i)) === true) { sum += i } }