高效素数判断

bool prime(int n){
    int i = 7, j, q;
    if(n == 1)  return false;
    if(n == 2 || n == 5 || n == 3)  return true;
    if(n % 2 == 0 || n % 3 == 0 || n % 5 == 0)  return false;
    q = (int)sqrt((double)n);
    for(; i <= q; ){
        for(j = 0; j < 8; ++j){
            if(n % i == 0)  return false;
            i += p[j];
        }
        if(n % i == 0)  return false;
    }
    return true;
}

 

posted @ 2015-02-14 10:44  Jeremy Wu  阅读(216)  评论(0)    收藏  举报