エリクセンふるい法 - 素数の迅速なスクリーニング

エリクセンコアスクリーニング方法であって、素数の倍数が素数ではありません。

その後、我々は、テーブルと素数としてマークされた01のすべての数の加算を作成、我々は2が最も小さい素数であると判断することができ、そのような戦略を実装する、我々は、すべての数(非合金としてマーク2の範囲内に因子をスクリーニングします素数)、その後、()非プライムとしてマークプライム倍数を話す最小の素数テーブル、同じ戦略を削除します。下のグラフは、このような完璧なアルゴリズムを示しています

 

画面エリクセンのみの複雑O比較的速いとみなす(nloglogn)。データの量があまり大きくない場合には複雑さが線形であるとして、それは見ることができます。

const  int型 MAX_NUM = 10000 + 10 BOOL is_prime [MAX_NUM]。

ボイド prime_table(INT MAXN)
{ 
    memsetの(is_prime、1はsizeof (is_prime))。
    is_prime [ 0 ] = is_primeは、[ 1 ] = 以下のためにint型 I = 2 ; I <= MAXN; iは++ 
    { 
        場合(is_prime [I])
        { 
            ためINT J = 2 * I; J <= MAXN; J + = I)
                is_prime [J] = ; 
        } 
    } 
}

 

おすすめ

転載: www.cnblogs.com/YY666/p/11220551.html