Add tests for Project Euler Problem 5 + minor refactor (#1691)

This commit is contained in:
Omkarnath Parida
2024-10-09 05:24:11 +05:30
committed by GitHub
parent 18da83a5b7
commit ff314a2bed
3 changed files with 18 additions and 5 deletions

View File

@ -35,6 +35,8 @@
* [ROT13](Ciphers/ROT13.js) * [ROT13](Ciphers/ROT13.js)
* [VigenereCipher](Ciphers/VigenereCipher.js) * [VigenereCipher](Ciphers/VigenereCipher.js)
* [XORCipher](Ciphers/XORCipher.js) * [XORCipher](Ciphers/XORCipher.js)
* **Compression**
* [RLE](Compression/RLE.js)
* **Conversions** * **Conversions**
* [ArbitraryBase](Conversions/ArbitraryBase.js) * [ArbitraryBase](Conversions/ArbitraryBase.js)
* [ArrayBufferToBase64](Conversions/ArrayBufferToBase64.js) * [ArrayBufferToBase64](Conversions/ArrayBufferToBase64.js)
@ -285,6 +287,7 @@
* [Problem016](Project-Euler/Problem016.js) * [Problem016](Project-Euler/Problem016.js)
* [Problem017](Project-Euler/Problem017.js) * [Problem017](Project-Euler/Problem017.js)
* [Problem018](Project-Euler/Problem018.js) * [Problem018](Project-Euler/Problem018.js)
* [Problem019](Project-Euler/Problem019.js)
* [Problem020](Project-Euler/Problem020.js) * [Problem020](Project-Euler/Problem020.js)
* [Problem021](Project-Euler/Problem021.js) * [Problem021](Project-Euler/Problem021.js)
* [Problem023](Project-Euler/Problem023.js) * [Problem023](Project-Euler/Problem023.js)

View File

@ -5,11 +5,9 @@ Smallest multiple
What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20? What is the smallest positive number that is evenly divisible by all of the numbers from 1 to 20?
*/ */
export const findSmallestMultiple = () => { export const findSmallestMultiple = (maxDivisor) => {
const divisors = [ const divisors = Array.from({ length: maxDivisor }, (_, i) => i + 1)
20, 19, 18, 17, 16, 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2 let num = maxDivisor + 1
]
let num = 21
let result let result
while (!result) { while (!result) {

View File

@ -0,0 +1,12 @@
import { expect } from 'vitest'
import { findSmallestMultiple } from '../Problem005.js'
describe.concurrent('Find smallest multiple', () => {
test.each([
[10, 2520],
[15, 360360],
[20, 232792560]
])('max divisor -> %i, smallest multiple -> %i', (a, expected) => {
expect(findSmallestMultiple(a)).toBe(expected)
})
})