车轮分解& Eratosthenes的筛子

时间:2013-08-04 04:34:10

标签: algorithm optimization sieve-of-eratosthenes wheel-factorization

我想进一步优化筛子。我已经从http://en.wikipedia.org/wiki/Wheel_factorization#Procedure学习了车轮分解。但我不明白如何在筛子中实现砂轮分解?

bool status[N]={0};
void SOE(){
    status[0]=1;
    status[1]=1;
    status[2]=0;
    for(int i=4;i<N;i=i+2){
        status[i]=1;
    }
    int sqrtN=sqrt(N);;
    for(int i=3;i<=sqrtN;i=i+2){
        if(status[i]==0){
            for(int j=i*i;j<N;j+=i+i){
                status[j]=1;
            }
        }
    }
}

0 个答案:

没有答案