算法获取质数(素数)数组

写一个方法得到一个素数数组,这些素数不能大于给定的自然数。

我看网上大多数的实现都是用自然数n除以2到n/2+1的数,如果整除了,就判定不是素数。

我的想法不一样,我一个数组保存已经得到的素数,然后用n除以这些素数,如果整除了,就判定不是素数。

具体实现如下:

        static int[] GetPrimeNumbers(int boundary)
        {
            List<int> primeList = new List<int>();
            int n = 2;
            while (n <= boundary)
            {
                bool isPrime = true;
                for (int i = 0; i < primeList.Count; i++)
                {
                    if (n % primeList[i] == 0)
                    {
                        isPrime = false;
                        break;
                    }
                }

                if (isPrime)
                {
                    primeList.Add(n);
                }

                if (n < 3)
                {
                    n++;
                }
                else
                {
                    n += 2;
                }
            }

            return primeList.ToArray();
        }
原文地址:https://www.cnblogs.com/ericwen/p/primenumbe.html