public static bool IsPrime(this Int64 number) { if (number < 2) { return(false); } else if (number < 4) { return(true); } var limit = (Int32)System.Math.Sqrt(number) + 1; var foundPrimes = new PrimesInt32(limit); return(!foundPrimes.IsDivisible(number)); }
public static bool IsPrime(this Int64 number) { if (number < 2) { return(false); } else if (number < 4) { return(true); } if (primes != null && primes.IsDivisible(number)) { return(false); } var limit = (Int32)System.Math.Sqrt(number); var foundPrimes = new PrimesInt32(limit); if (foundPrimes.Count() > primes.Count()) { primes = foundPrimes; } return(!foundPrimes.IsDivisible(number)); }
static PrimeHelper() { primes = new PrimesInt32(10000000); }