求解大於某數的下一個素數

求解大於某數的下一個素數問題,常見於求某一範圍內的全部素數,第k個素數問題中,因爲素數必定是奇數,而兩個相鄰奇數之間必定相差2,因此只要在奇數中查找便可:代碼以下spa

int NextPrime (int N) {
    if (N % 2 == 0)
        ++N;
    int i;
    bool NotPrime = false;
    for (; ; N += 2){
        NotPrime = true;
        for (i = 3; i*i <= N; i+=2)
            if (N % i == 0) {
                NotPrime = true;
                break;
            }
        if (!NotPrime)
            return N;
    }
}
相關文章
相關標籤/搜索