UNPKG

mathball

Version:

A JavaScript library for Competitive Programming

55 lines (50 loc) 999 B
'use strict'; /* 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; };