public static bool IsPrime(this BigInteger number)
        {
            if (number < 2)
            {
                return(false);
            }
            if (number % 2 == 0)
            {
                return(number == 2);
            }

            //var root = Sqrt(number);
            //for (var i = 3; i <= root; i += 2)
            //{
            //    if (number % i == 0)
            //    {
            //        Console.WriteLine("Possible divider: {0} for root: {1}", i, root);
            //        return false;
            //    }
            //}
            //return true;
            var primes = new BigIntegerPrimality();

            return(primes.IsPrimeMillerRabin(number));
        }
        public static bool IsPrime(this BigInteger number)
        {
            if (number < 2) return false;
            if (number % 2 == 0) return (number == 2);

            //var root = Sqrt(number);
            //for (var i = 3; i <= root; i += 2)
            //{
            //    if (number % i == 0)
            //    {
            //        Console.WriteLine("Possible divider: {0} for root: {1}", i, root);
            //        return false;
            //    }
            //}
            //return true;
            var primes = new BigIntegerPrimality();
            return primes.IsPrimeMillerRabin(number);
        }