Skip to content

Commit

Permalink
Added basic algorithm for testing in number is prime resolve manrajgr…
Browse files Browse the repository at this point in the history
  • Loading branch information
wbira committed Oct 16, 2018
1 parent 51fe89e commit a7236f6
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/algorithms/math/index.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
const extendedEuclidean = require('./extended_euclidean');
const gcd = require('./gcd');
const isprime = require('./is_prime');
const fastexp = require('./fast_exp');
const lcm = require('./lcm');
const modularInverse = require('./modular_inverse');

module.exports = {
extendedEuclidean,
gcd,
isprime,
fastexp,
lcm,
modularInverse
Expand Down
16 changes: 16 additions & 0 deletions src/algorithms/math/is_prime.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/**
* Checks in given number is prime
* @param {Number} n Number
* @return {Boolean} Returns true for prime number, for other false
*/
function isprime(n) {
if (n < 2) return false;
for (let i = 2; i < n; i += 1) {
if (n % i === 0) {
return false;
}
}
return n > 1;
}

module.exports = isprime;
37 changes: 37 additions & 0 deletions test/algorithms/math/testIsPrime.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/* eslint-env mocha */
const isprime = require('../../../src').algorithms.math.isprime;

const assert = require('assert');

describe('PrimeTest', () => {
it('should return false for negative', () => {
assert.equal(isprime(-1), false);
});

it('should return false for 0', () => {
assert.equal(isprime(-1), false);
});
it('should return false for 2', () => {
assert.equal(isprime(1), false);
});

it('should return true for 2', () => {
assert.equal(isprime(2), true);
});

it('should return true for 3', () => {
assert.equal(isprime(3), true);
});

it('should return true for 31', () => {
assert.equal(isprime(31), true);
});

it('should return true for 97', () => {
assert.equal(isprime(97), true);
});

it('should return true for 7919', () => {
assert.equal(isprime(7919), true);
});
});

0 comments on commit a7236f6

Please sign in to comment.