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
import primeval from 'primeval';
primeval(2); //=> true
primeval(3); //=> true
primeval(17); //=> true
primeval(29); //=> true
primeval(25); //=> false
primeval(512); //=> false
primeval(12); //=> false
primeval(1); //=> false
primeval("foobar"); //=> false
primeval(null); //=> false
primeval(NaN); //=> false
#API
#primeval(num)
Returns: Boolean
#num
Type: Number
The number that you want to check.
Note: Any non-
Numbertype will always return afalseoutput.
#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
See also
clsx(3), @polka/cluster(3), @pwa/cli(3), uvu(3), taskr(3), sockette(3), klona(3), kleur(3), dequal(3), sirv-cli(3)