C#中的素数筛选
2016-09-03 10:43
239 查看
~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~
质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。
判断101-200之间有多少个素数,并输出所有素数。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
程序分析:判断素数的方法:用一个数分别去除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;
}
}
}
~~~~~~~~~~~~~~~~~~~~~~~~~
Examination
Problem
质数(prime number)又称素数,有无限个。质数定义为在大于1的自然数中,除了1和它本身以外不再有其他因数的数称为质数。判断101-200之间有多少个素数,并输出所有素数。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Analysis
程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 在一般领域,对正整数n,如果用2到根号n之间的所有整数去除,均无法整除,则n为质数。
质数大于等于2不能被它本身和1以外的数整除
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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;
}
}
}
相关文章推荐
- 用筛选法求出100以内的全部素数,并按每行五个数显示。(C#)
- [转]筛选法求素数
- C#算法设计与分析-寻找素数
- [转]C#中,让组合框(ComboBox)支持拼音首字母检索筛选
- C#基础编程---素数
- C# 如何筛选时间串和计算时间差
- 素数筛选法
- 筛选法求100以内的素数
- 素数--超强筛选法
- C#求素数(质数)
- 一个根据筛选法求出100以内的所有素数的小程序
- C#中的Linq 学习 投影、筛选和排序
- C# 用Eratosthenes之筛求素数
- Eratoshenes素数筛选法
- [转载]C#中,让组合框(ComboBox)支持拼音首字母检索筛选
- C#求素数
- 判断素数(C#)
- 常用算法(C#): 判断素数的算法
- C#实现的Rabin-Miller检测素数算法,可检测一个数是否为素数(质数)
- 1716: Divisors(素数筛选)