求素数的O(N)算法

for(i=2;i<=10000;i++)
    {
       if(!isprime[i]) prime[cnt++]=i;
       for(j=0;j<cnt;j++)
        {
            if(i*prime[j]>10000) break;//prime[j]大于后面的更大于了
            isprime[i*prime[j]]=1;
            if(i%prime[j]==0) break;//只被最小素因子整除 比如12=6*2 而不能4*3
        }
    }

说实话,现在我也不能说百分之百的能讲出这样的关系

也许这也是算法的奥秘之处 看别人的尼玛就是坑  自己写的就是神作!!

posted @ 2013-04-04 21:59  闭关修炼的小孩纸  阅读(120)  评论(0编辑  收藏  举报