Eratosthenes筛选法求素数

转帖|其它|编辑:郝浩|2009-01-15 14:33:24.000|阅读 984 次

概述:Eratosthenes筛选法求素数的算法

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

文章关键字:|Eratosthenes|筛选|素数|

  public class Sieve{

    public static void main(String[] args)

    {

      int max = 100; //假设求100以内的素数

      boolean[] isPrime = new boolean[max+1];

      for(int i=0; i<=max; i++)

        isPrime[i]=true;

      isPrime[0]=isPrime[1]=false; //1和0不是素数,所以将相应的

      //isPrime元素设置为false

      int n = (int)Math.ceil(Math.sqrt(max));

      for(int i=0; i<=n; i++)

      {

        if(isPrime[i]) //素数的整数倍不是素数,从而筛选掉所有不是素数的数

        {

          for(int j=2*i; j<=max; j=j+i)

            isPrime[j]=false;

        }

      }

      int largest;

      for(largest=max; !isPrime[largest]; largest--)

      {

        System.out.println(largest);

      }

    }

  }


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com

文章转载自:IT专家网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP