primeval
A tiny (128B) utility to check if a value is a prime number
Based on the "multiples of six" approach – check this out for a quick explanation.
As of 3.0.0
, primeval
is extremely quick and actually usable within application settings.
Priors
primeval@2.0.0
– implemented the Agrawal–Kayal–Saxena ("AKS") Primality Test
AKS is a fully deterministic primality algorithm, but also incredibly slow.
Its primary purpose was educational, so feel free to explore!
This module exposes three module definitions:
- ES Module:
dist/primeval.mjs
- CommonJS:
dist/primeval.js
- UMD:
dist/primeval.min.js
Install
$ npm install --save primeval
Usage
; ; //=> true; //=> true; //=> true; //=> true; //=> false; //=> false; //=> false; //=> false ; //=> false; //=> false; //=> false
API
primeval(num)
Returns: Boolean
num
Type: Number
The number that you want to check.
Note: Any non-
Number
type will always return afalse
output.
Benchmarks
The arguiot
case is the code provided in PR #2
by @arguiot 🙇
Purposefully excluding primeval@2.0.0
as it's incredibly slow and not meant for actual use.
# Node v10.13.0
# Primes
arguiot x 875,571 ops/sec ±0.67% (91 runs sampled)
primeval x 4,589,884 ops/sec ±0.20% (93 runs sampled)
# Not Primes
arguiot x 18,429,333 ops/sec ±0.24% (95 runs sampled)
primeval x 45,944,091 ops/sec ±0.18% (96 runs sampled)
# Carmichael Numbers
arguiot x 10,129,774 ops/sec ±0.41% (97 runs sampled)
primeval x 35,983,866 ops/sec ±0.24% (98 runs sampled)
License
MIT © Luke Edwards