isPrime property

bool get isPrime

Returns true if this int is a prime number.

Implementation

bool get isPrime {
  var n = this;

  if (n <= 0) return false;
  if (n == 1) return false;
  if (n == 2) return true;

  var knownPrime = PrimeUtils.isKnownPrime(n);

  if (knownPrime != null) {
    return knownPrime;
  }

  var b = n.squareRoot;

  var itr = PrimeUtils.knownPrimesIterator;
  itr.moveNext(); // it's never empty.

  var p = itr.current;
  if (n % p == 0) return false;

  while (itr.moveNext()) {
    p = itr.current;
    if (p > b) break;

    if (n % p == 0) return false;
  }

  for (p += 2; p <= b; p += 2) {
    if (n % p == 0) return false;
  }

  return true;
}