Skip to content

Commit 548f0f9

Browse files
Merge pull request #6 from alexanderywang/isPrime
fast prime number checker
2 parents e2e1f45 + 52dc443 commit 548f0f9

File tree

2 files changed

+45
-0
lines changed

2 files changed

+45
-0
lines changed

src/isPrime.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/**
2+
* A function to test if a number is a prime number
3+
* @param number - The number you want to test
4+
* @return - boolean for whether or not a number is prime
5+
*/
6+
7+
const isPrime = number => {
8+
if (!Number.isInteger(number)) return false
9+
if (number <= 1) return false
10+
if (number === 2) {
11+
return true;
12+
}
13+
if (number % 2 === 0) return false;
14+
for (let i = 3; i <= parseInt(Math.sqrt(number)); i += 2) {
15+
if (number % i === 0) return false;
16+
}
17+
return true;
18+
};
19+
20+
module.exports = isPrime;

src/tests/isPrime.test.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
const expect = require("chai").expect;
2+
const isPrime = require("../isPrime");
3+
4+
describe("isPrime", () => {
5+
it("returns a boolean denoting whether a number is a prime number", () => {
6+
const num = 7;
7+
const num2 = 24;
8+
expect(isPrime(num)).to.be.true;
9+
expect(isPrime(num2)).to.be.false;
10+
});
11+
it("returns false if a number is less than or equal to 1", () => {
12+
const num = -7;
13+
const num2 = 0;
14+
expect(isPrime(num)).to.be.false;
15+
expect(isPrime(num2)).to.be.false;
16+
});
17+
it("returns false if a number is not an integer", () => {
18+
const num = 7.3;
19+
const num2 = 31.5;
20+
const num3 = 5.0
21+
expect(isPrime(num)).to.be.false;
22+
expect(isPrime(num2)).to.be.false;
23+
expect(isPrime(num3)).to.be.true;
24+
});
25+
});

0 commit comments

Comments
 (0)