一般的なふるい法:
1 空隙プライム(){ 2 のmemset(VIS、真、はsizeof (VIS))。 3 VIS [ 0 ] = VIS [ 1 ] = 偽。 4 のためには、(int型、I = 2 ; iがMAXN <; Iは++ ){ 5 ため(INT J = 2、iはJ <MAXN *; jは++ ){ 6 VISは[iがjは*] = 偽。 7 } 8 } 9 }
高速リニアふるい法:
1 INTプライム[N] = { 0 }; 2 ブール isNotPrime [N] = { 1、1 }。 3 INT num_prime = 0 。 4 5 ボイドquick_prime() 6 { 7 ための(int型 I = 2 ; iがNを<; Iは++ ) 8 { 9 もし(!isNotPrime [I])// iは是合数的话、I = P1 *のP2 *のP3 *··· 10 プライム[num_prime ++] = I; 11 のために(INT J = 0 ; J <num_primeプライム&& * I [J] <N; J ++ ) 12は 、{ 13は isNotPrime [*プライムI [J] = 1 ; 14 IF(!(%I )プライム[J])とき// p1は==プライム[j]は、終了スクリーニングする場合。ふるいは、P1はI *を超えない素数 15 ブレーク; 16 } 17 } 18です }