src/bigi/lib/bigi.js
function bnIsProbablePrime(t) {
  var i, x = this.abs()
  if (x.t == 1 && x[0] <= lowprimes[lowprimes.length - 1]) {
    for (i = 0; i < lowprimes.length; ++i)
      if (x[0] == lowprimes[i]) return true
    return false
  }
  if (x.isEven()) return false
  i = 1
  while (i < lowprimes.length) {
    var m = lowprimes[i],
      j = i + 1
    while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
    m = x.modInt(m)
    while (i < j) if (m % lowprimes[i++] == 0) return false
  }
  return x.millerRabin(t)
}
function bnIsProbablePrime(t) {
  var i, x = this.abs()
  if (x.t == 1 && x[0] <= lowprimes[lowprimes.length - 1]) {
    for (i = 0; i < lowprimes.length; ++i)
      if (x[0] == lowprimes[i]) return true
    return false
  }
  if (x.isEven()) return false
  i = 1
  while (i < lowprimes.length) {
    var m = lowprimes[i],
      j = i + 1
    while (j < lowprimes.length && m < lplim) m *= lowprimes[j++]
    m = x.modInt(m)
    while (i < j) if (m % lowprimes[i++] == 0) return false
  }
  return x.millerRabin(t)
}
function bnIsProbablePrime ( t ) { var i , x = this . abs ( ) if ( x . t == 1 && x [ 0 ] <= lowprimes [ lowprimes . length - 1 ] ) { for ( i = 0 ; i < lowprimes . length ; ++ i ) if ( x [ 0 ] == lowprimes [ i ] ) return true return false } if ( x . isEven ( ) ) return false i = 1 while ( i < lowprimes . length ) { var m = lowprimes [ i ] , j = i + 1 while ( j < lowprimes . length && m < lplim ) m *= lowprimes [ j ++ ] m = x . modInt ( m ) while ( i < j ) if ( m % lowprimes [ i ++ ] == 0 ) return false } return x . millerRabin ( t ) }
(public) test primality with certainty >= 1-.5^t
( public ) test primality with certainty > = 1 - . 5^t