您的位置:首页 > 编程语言 > C#

C#中的素数筛选

2016-09-03 10:43 239 查看
~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~


Examination
Problem

      质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。

      判断101-200之间有多少个素数,并输出所有素数。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Analysis

      程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。  

      在一般领域,对正整数n,如果用2到根号n之间的所有整数去除,均无法整除,则n为质数。

      质数大于等于2不能被它本身和1以外的数整除    

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~



Program

using System;
 namespace 计算质数
 {
  class Program
  {
  static void Main(string[] args)
  {
  for (int i = 2,j=1; i < 2100000000&&j<=1000; i++)//输出21亿内的所有质数,j控制只输出1000个。
  {
  if (st(i))
  {
  Console.WriteLine("{0,-10}{1}",j,i);
  j++;
  }
  }
  }
  static bool st(int n)//判断一个数n是否为质数
  {
  int m = (int)Math.Sqrt(n);
  for(int i=2;i<=m;i++)if(n%i==0 && i!=j)return false;
  return true;
  }
  }
 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: