Cに限った事じゃないんだけど、高速に素数を判定する方法って
for文使って消去法しかないの?(↓な感じ)

int PrimeNumSerch(int serch)
{
    int    tmp;

    for(tmp = 2; tmp <= (int)(serch / 2); tmp ++) {
        if(serch % tmp == 0)
            return 0;
    }
    if(tmp > (int)(serch / 2)) {
        return 1;
    }
}


あるか、無いかだけでいいから他に方法あったら教えて下さい。