mathball
Version:
A JavaScript library for Competitive Programming
55 lines (50 loc) • 999 B
JavaScript
;
/* Prime Number
* Function: isPrime()
*/
var validate = require('../validation/positive-integer');
exports.check = function (num) {
validate(num, 'isPrime');
if (num === 2 || num === 3) {
return true;
}
if (num < 2 || num % 2 === 0) {
return false;
}
if (num < 9) {
return true;
}
if (num % 3 === 0) {
return false;
}
var r = Math.sqrt(num);
var f = 5;
while (f <= r) {
if (num % f === 0) {
return false;
}
if (num % (f + 2) === 0) {
return false;
}
f = f + 6;
}
return true;
};
/* Range of Prime Numbers
* Function: rangePrime()
*/
exports.range = function (n) {
validate(n, 'rangePrime');
var numbers = Array(n + 1).fill(true);
numbers[0] = numbers[1] = false;
var primeNumbers = [];
for (var i = 0; i < numbers.length; i++) {
if (numbers[i]) {
primeNumbers.push(i);
for (var j = i; j <= n; j += i) {
numbers[j] = false;
}
}
}
return primeNumbers;
};