diff --git a/Project-Euler/Problem10.js b/Project-Euler/Problem10.js new file mode 100644 index 0000000000..9d90ee5c3f --- /dev/null +++ b/Project-Euler/Problem10.js @@ -0,0 +1,24 @@ +// https://projecteuler.net/problem=10 + +const isPrime = (number) => { + if (number === 2) return true + if (number % 2 === 0) return false + + for (let j = 3; j * j <= number; j += 2) { + if (number % j === 0) { + return false + } + } + return true +} + +const calculateSumOfPrimeNumbers = (maxNumber) => { + let sum = 0 + for (let i = maxNumber - 1; i >= 2; i--) { + if (isPrime(parseInt(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 0000000000..2c1545cd10 --- /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) + }) +}) diff --git a/String/createPurmutations.js b/String/CreatePermutations.js similarity index 91% rename from String/createPurmutations.js rename to String/CreatePermutations.js index 1b3cbb06a0..6e5344f742 100644 --- a/String/createPurmutations.js +++ b/String/CreatePermutations.js @@ -33,5 +33,4 @@ const createPermutations = (str) => { } return perms } - -console.log(createPermutations('abc')) // should print ["abc", "acb", "bac", "bca", "cab", "cba"] +export { createPermutations } diff --git a/String/test/CreatePermutations.test.js b/String/test/CreatePermutations.test.js new file mode 100644 index 0000000000..5bb82848c0 --- /dev/null +++ b/String/test/CreatePermutations.test.js @@ -0,0 +1,14 @@ +import { createPermutations } from '../CreatePermutations' + +describe('createPermutations', () => { + it('expects to generate 6 different combinations', () => { + const text = 'abc' + const SUT = createPermutations(text) + expect(SUT).toStrictEqual(['abc', 'acb', 'bac', 'bca', 'cab', 'cba']) + }) + it('expects to generate 2 different combinations', () => { + const text = '12' + const SUT = createPermutations(text) + expect(SUT).toStrictEqual(['12', '21']) + }) +})