美文网首页
求小于N的所有素数

求小于N的所有素数

作者: 心彻 | 来源:发表于2018-01-22 22:33 被阅读43次

题目如标题,本人常用的语言是JavaScript和C#,打算用这两种语言都写一下代码,主要是为了让自己加深印象。

其实,这些都是大学时代该做的事情,所以,我现在算是在还债吧。

好了,废话少说一点,代码多写一些,下面就直接贴代码吧:

JavaScript版

var primes=[2,3,5];//已找到的素数
var count=3;//已找到的素数个数
function getPrime(Max){
    var factor=2
    for(var n=7;n<=Max;n+=factor){
        factor=6-factor;
        for(var i=0;primes[i]*primes[i]<=n;i++){
            if(!(n%primes[i])){
                break;
            }
        }
        if(primes[i]*primes[i]>n){
            primes[count]=n;
            count++;
        }
    }
    return primes;
}

C#版

    class Program
    {
        static void Main(string[] args)
        {
            List<int> primeList = GetPrime(1000);
            for (int i = 0; i < primeList.Count;i++){
                Console.WriteLine(primeList[i]);
            }
        }

        private static List<int> GetPrime(int max)
        {
            List<int> PrimeList = new List<int>();
            PrimeList.Add(2);
            PrimeList.Add(3);
            PrimeList.Add(5);
            int count = 3;
            int factor = 2;
            int i;
            for (int n = 7; n < max;n+=factor){
                factor = 6 - factor;
                for (i = 0; PrimeList[i] * PrimeList[i] <= n;i++){
                    if(n%PrimeList[i]==0){
                        break;
                    }
                }
                if(PrimeList[i]*PrimeList[i]>n){
                    PrimeList.Add(n);
                    count++;
                }
            }
            return PrimeList;
        }
    }

这种算法的空间复杂度是存放所有素数的数组空间,它的思路如下图:


算法思路图

还有一种算法的思路图是:


算法思路图

这种算法的空间复杂度是存放所有数的数组空间,需要使用数组和链表的组合,以达到快速删除数据的目的,链表我不太会用,暂时不写代码了。有兴趣的同学可以自己根据思路图进行编码!

相关文章

  • 求小于N的所有素数

    题目如标题,本人常用的语言是JavaScript和C#,打算用这两种语言都写一下代码,主要是为了让自己加深印象。 ...

  • 001-枚举问题

    1.求一个小于N 的最大素数 N- k 是素数的充分必要条件: N- K 不...

  • 欧拉计划10 (素数的和)

    题目: 所有小于10的素数的和是2 + 3 + 5 + 7 = 17。 求所有小于两百万的素数的和。 Java: ...

  • 【python吉比特】求素数?

    题目:输入M、N,1 < M < N < 1000000,求区间[M,N]内的所有素数的个数。素数定义:除了1以外...

  • 区间素数线性筛选

    区间素数线性筛选 假设应用场景为求一个区间长度远小于右端点的所有素数,该区间为 。如若使用朴素素数线性筛选,则需...

  • 204. Count Primes - swift

    描述: 计算小于非负数整数n的质数(素数)个数 什么是质数(素数): 质数(prime number)又称素数,有...

  • 实验九:优秀代码

    B : 求m到n之间的素数和----函数 题目描述输入两个正整数m和n(m

  • 筛选出小于N内所有素数

    埃拉托斯特尼筛法[https://zh.wikipedia.org/wiki/%E5%9F%83%E6%8B%89...

  • 求 1到100的所有素数 -- Java描述

    求 1到100的所有素数 -- Java描述 题目: 求1到100的所有素数。 例子: 素数定义: 素数又称质数,...

  • 计数质数

    统计所有小于非负整数 n 的质数的数量。 示例: 思路 这道题给定一个非负数n,让我们求小于n的质数的个数,题目中...

网友评论

      本文标题:求小于N的所有素数

      本文链接:https://www.haomeiwen.com/subject/ftwooxtx.html