zoukankan      html  css  js  c++  java
  • 打印质数的Linq算法

    今天看到打印质数的各种算法的文章,突发奇想实现了其较好的算法Linq版实现。

    引用算法如下。

    一、初始化如下列表。

     2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

    二、把第一个数(2)取出来,去掉所有可以被2整除的数。

     2  3     5     7     9    11    13    15    17    19    21    23    25    27    29

    三、取第二个数(3),去掉所有可以被 3整除的数。

     2  3     5     7          11    13          17    19          23    25          29

    四、取第三个数(5),因为4已经被去除了,再去掉所有可以被5整除的数。

     2  3     5     7          11    13          17    19          23                29

    接下来的数是7,但是7的平方是49,其大于了30,所以我们可以停止计算了。剩下的数就是所有的质数了。


    static void Main(string[] args)
            {
                int length = 30;//最大长度
                var list = Enumerable.Range(1, length);// 1-{最大长度} 的序列
                for (int i = 1; ; i++)
                {
                   int n = list.ElementAt(i);//取下一个有效数字
                   if (n * n > length)//数的平方大于{最大长度},就停止计算了
                   {
                       break;
                   }
                   list = list.Where(p => p == n || p % n != 0);
              }
                //打印
                foreach (var item in list)
                {
                    Console.WriteLine(item);
                }
            }
    
  • 相关阅读:
    javascript 介绍
    命令提示符(命令行)
    node(1) hello world
    用Vgg16来提取特征
    VGG16学习
    注意力模型
    统计学习方法
    数字图像处理(五)
    数字图像处理(四)
    BN
  • 原文地址:https://www.cnblogs.com/kiminozo/p/1963486.html
Copyright © 2011-2022 走看看