コード例 #1
0
        public static int ExpandPrime(int oldSize)
        {
            int num = 2 * oldSize;

            if (num > 2146435069 && 2146435069 > oldSize)
            {
                return(2146435069);
            }
            return(PrimeHelper.GetPrime(num));
        }
コード例 #2
0
        public static int GetPrime(int min)
        {
            if (min < 0)
            {
                throw new ArgumentException("min < 0");
            }

            for (int i = 0; i < PrimeHelper.Primes.Length; i++)
            {
                int prime = PrimeHelper.Primes[i];
                if (prime >= min)
                {
                    return(prime);
                }
            }
            for (int i = min | 1; i < 2147483647; i += 2)
            {
                if (PrimeHelper.IsPrime(i) && (i - 1) % 101 != 0)
                {
                    return(i);
                }
            }
            return(min);
        }