C#找质数(素数)厄拉多塞筛法

C#找质数(素数)厄拉多塞筛法

质数(prime number)又称素数,有无限个。指整数在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数(除了1和它本身以外不再有其他的因数)。根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积,比1大但不是素数的数称为合数。1和0既非素数也非合数。最小的质数是2。

厄拉多塞(Eratosthenes, 公元前276–前196)古希腊天文学家。他是阿基米德的朋友,也和亚里士多德一样是一个具有广泛兴趣的人。他不仅是著名的天文学家和数学家,而且还是地理学家、历史学家,甚至还涉猎文学评论。他在数学方面他研究出一个素数系统,现在叫做厄拉多塞筛法(Eratosthenes sieve),是一种从按照顺序排列的所有自然数中找出素数的方法。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;

namespace ConAppPrimeNumberOther
{
    class Program
    {
        static void Main(string[] args)
        {

            var s = new Stopwatch();

            s.Start();
            PrimeNumber.Find();
            s.Stop();
            System.Console.WriteLine("Watch: {0}ms",s.ElapsedMilliseconds);

            s.Reset();
            s.Start();
            PrimeNumber.Find2();
            s.Stop();
            System.Console.WriteLine("Watch: {0}ms", s.ElapsedMilliseconds);

            s.Reset();
            s.Start();
            PrimeNumber.Find3();
            s.Stop();
            System.Console.WriteLine("Watch: {0}ms", s.ElapsedMilliseconds);

            s.Reset();
            s.Start();
            PrimeNumber.Find4();
            s.Stop();
            System.Console.WriteLine("Watch: {0}ms", s.ElapsedMilliseconds);
        }

    }

    public class PrimeNumber
    {
        const int N = 1000000;
        //const int N = 1000000;
        //static int count = 0;

/*
一.经典算法
经典的素数判定算法是这样:给定一个正整数n,用2到sqrt(n)之间的所有整数去除n,如果可以整除,则n不是素数,如果不可以整除,则n就是素数。所以求小于N的所有素数程序如下:
*/

        public static void Find()
        {

            int m, n;
            int count = 0;

            for (n = 2; n < N; n+
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值