Eratosthenes筛选法求素数的算法
来源:优易学  2011-2-1 15:10:02   【优易学:中国教育考试门户网】   资料下载   IT书店
  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);
  }
  }
  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训