node package manager


A JavaScript library for prime numbers.


Primality is a JavaScript library for prime numbers. It features a fantastic primality test and identification of the various classes of prime numbers.

  • Check the primality of a number
  • Works with numbers disguised as strings
  • Also does arrays
  • Provides checks for the following classes of prime numbers:
  • About 1 kibibyte minified and gzipped
  • CommonJS and AMD loader support

Primality has been tested in:

  • Chrome 6–29
  • Firefox 15–20
  • Internet Explorer 10
  • Opera 11.6-12.15
  • Safari 5.0.5–5.1
  • Node.js 0.6.21–0.10.15

In browsers:

  • Standalone
<script src="primality.js"></script>
  • Component
$ component install KenanY/primality
  • Bower
$ bower install primality

Using npm:

$ npm install primality

In Node.js and RingoJS v0.8.0+:

var primality = require('primality');

In RingoJS v0.7.0-:

var primality = require('primality').primality;

In Rhino:


In an AMD loader like RequireJS:

  'paths': {
    'primality': 'path/to/primality'
['primality'], function(primality) {

Primality's flagship method is primality(), which works as you might expect it to:

// => true 
// => false 

Of course, you can pass strings instead of numbers if you'd like:

// => true 

Primality can even do arrays. If any of the values in an array are not prime, false is returned.

primality([17, 19, 23]);
// => true 
primality([17, 20, 23]);
// => false 

Beyond primality testing, Primality can also tell you if a pair of numbers are twin, cousin, or sexy primes. Twin primes are prime numbers that differ from each other by two. Similarly, cousin primes differ by four and sexy primes differ by six.

primality.areTwinPrimes(3, 5);
// => true 
primality.areCousinPrimes(3, 7);
// => true 
primality.areSexyPrimes(5, 11);
// => true 

You can also check for Wilson primes. Only three Wilson primes are known at the moment: 5, 13, and 563.

// => true 
  • lodash.isnan@2.2
  • lodash.isfinite@2.2
  • lodash.isarray@2.2
  • lodash.contains@2.2

The full changelog is available here.