Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions Project-Euler/Problem007.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { PrimeCheck } from '../Maths/PrimeCheck.js'

/**
* Find nth Prime Number
*
* P.S.(Project Euler - 007):
* By listing the first six prime numbers: 2, 3, 5, 7, 11, and 13, we can see that the 6th prime is 13.
* What is the 10001st prime number?
*
* @param {Number} n
* @returns {Number} returns the nth prime number
*/
export const nthPrime = (n) => {
if (n < 1) {
return 'Invalid Input'
}

let count = 0
let inc = 2
while (count < n) {
if (PrimeCheck(inc)) {
count++
}
inc++
}
return inc - 1
}
17 changes: 17 additions & 0 deletions Project-Euler/test/Problem007.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
import { nthPrime } from '../Problem007.js'

describe('checking nth prime number', () => {
it('should be invalid input if number is negative', () => {
expect(nthPrime(-3)).toBe('Invalid Input')
})
it('should be invalid input if number is 0', () => {
expect(nthPrime(0)).toBe('Invalid Input')
})
test('if the number is greater than 0', () => {
expect(nthPrime(10)).toBe(29)
})
// Project Euler Condition Check
test('if the number is 10001', () => {
expect(nthPrime(10001)).toBe(104743)
})
})