lukeed

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


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-Number type will always return a false 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

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)