zoukankan      html  css  js  c++  java
  • 算法获取质数(素数)数组

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

    我看网上大多数的实现都是用自然数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();
            }
  • 相关阅读:
    分布式算法(一致性Hash算法)
    浅析Postgres中的并发控制(Concurrency Control)与事务特性(上)
    PostgreSQL内核分析——BTree索引
    源码安装postgresql数据库
    QEMU漏洞挖掘
    mysql远程连接数据库
    C++学习之路(十一):C++的初始化列表
    搭建本地git服务器
    C++面试常见问题
    SkipList 跳表
  • 原文地址:https://www.cnblogs.com/ericwen/p/primenumbe.html
Copyright © 2011-2022 走看看