一般数体篩法
数論において、一般数体篩法（いっぱんすうたいふるいほう、, GNFS）は、より大きい整数を素因数分解する古典的アルゴリズムであり、現在知られている最もなものである。ヒューリスティックに、整数 （ ビットで構成される）を素因数分解するための複雑性は、(L-notation)を用いて以下のように表される。
ここで、 は自然対数である。これは(special number field sieve)の一般化である：特殊数体篩法は特定形式の数のみを素因数分解できるが、一般数体篩法は素数冪（根を求めることで素因数分解は容易である）以外の任意の数を素因数分解できる。
（特殊・一般）数体篩法の原理は、より単純な(rational sieve)や(quadratic sieve)の改良ととらえることができる。このようなアルゴリズムを用いて大きな数 を素因数分解する場合、 次の(smooth number)（つまり、小さな素因数を持つ数）を探す必要がある。これらの値の大きさは、 の大きさに対して指数関数的である（後述）。一方、一般数体篩法は、 の大きさに対して"準"指数関数的な滑らかな数を検索することができる。値が小さくなるため、上のアルゴリズムで調べられる値よりも滑らかである可能性が高くなる。これが一般数体篩法の効率性の鍵である。このスピードアップのためには、一般数体篩法は数体内で計算と素因数分解を行う必要がある。そのため、単純な有理篩法と比較して、アルゴリズムに複雑な部分が多くなる。
アルゴリズムへの入力のサイズは 、つまり の二進表現のビット数である。定数 について、 次のどの要素も、 の指数関数的である。数体篩法の実行時間は入力のサイズに対して超多項式的であるが、準指数関数的である。