素数筛选法

//0是素数

prime[0] = prime[1] = 1;

 for (int i = 2; i <= MAX; i++)
 {
  if (prime[i] == 0)
  {

   for (int j = i + i; j <= MAX; j += i)
   {
    prime[j] = 1;
   }
  }
 }

 

下面可以j = i * i开始,但是前提是i从2开始,只有这样才能保证i 的k(k < i)倍都标记过,因为当第一层循环的i = k的时候j = k * i的时候标记了

posted on 2012-08-28 20:35  [S*I]SImMon_WCG______*  阅读(176)  评论(0编辑  收藏  举报

导航