For faster navigation, this Iframe is preloading the Wikiwand page for エラトステネスの篩.

エラトステネスの篩

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。 出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方)出典検索?"エラトステネスの篩" – ニュース · 書籍 · スカラー · CiNii · J-STAGE · NDL · dlib.jp · ジャパンサーチ · TWL (2019年6月)

エラトステネスの篩 (エラトステネスのふるい、: Sieve of Eratosthenes) は、指定された整数以下の全ての素数を発見するための単純なアルゴリズムである。古代ギリシアの科学者、エラトステネスが考案したとされるため、この名がついている。

アルゴリズム

[編集]
2 から 120 までの数に含まれる素数を探すGIFアニメーション
2 から 120 までの数に含まれる素数を探すGIFアニメーション

指定された整数x以下の全ての素数を発見するアルゴリズム。このアニメーションでは以下のステップにそって 2 から 120 までの数に含まれる素数をさがしている。

ステップ 1

[編集]

120要素の配列の1番目にfalseを、2番目以降に全てtrueを入れる。

ステップ 2

[編集]

配列の先頭から順に走査し、trueの要素を見つけたらその添字pを素数リストに追加し、配列の 以上のpの倍数番目をfalseにする。

ステップ 3

[編集]

上記の篩い落とし操作を、走査している要素の添字がxの平方根に達するまで行う。

ステップ 4

[編集]

最後までtrueだった要素の添字を素数リストに追加して処理終了。

具体例 x=120 の場合

[編集]

配列の中身は、trueである添字がどれかを表記。残りは全てfalseである。

ステップ 1
配列={2から120まで}、探索リストの先頭値=2
ステップ 2-1
素数リスト={2}
配列={3から119までの奇数}、探索リストの先頭値=3
ステップ 2-2
素数リスト={2,3}
配列={2,3,5,7,11,13,17,19,23,25,29,31,35,37,41,43,47,49,53,55,59,61,65,67,71,73,77,79,83,85,89,91,95,97,101,103,107,109,113,115,119}
次の素数=5
ステップ 2-3
素数リスト={2,3,5}
配列={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,49,53,59,61,67,71,73,77,79,83,89,91,97,101,103,107,109,113,119}
次の素数=7
ステップ 2-4
素数リスト={2,3,5,7}
配列={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113}
次の素数=11
ステップ 3
次の素数が に達しているのでステップ4へ
ステップ 4
11以上の、trueである要素の添字を素数リストに追加
素数リスト={2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113}

理論的考察

[編集]

エラトステネスのふるい 以下の素数が既知のとき、( 以上)x 以下の素数を決定するには、x 以下の整数で 以下の素数の倍数を全て取り除けば(= 篩えば)よいことを意味する。このことから、包除原理を用いることによって x 以下の素数の個数に関する式を得ることができる。

具体的な式を書くために、いまx 以下の素数の個数を と書き、z 以下の全ての素数の積を とすると、この篩の操作が与える定量的な公式は

となる( メビウス関数)。

より一般に、整数の集合A から、z 以下の素数の倍数全てを篩うとき、残る元の個数 は、

と表すことができる。ここで A の元で d で割り切れるもの全体の集合を表す。この定式化はルジャンドルの篩ともよばれる。

再び先の素数の個数の評価について述べれば、 のとき、不等式

が成り立つから、不等式 を用いて

という評価が得られる。この公式から( とおき、素数の逆数の和が発散することを用いて)

を証明することができる。

しかし、其評価の過程で上の のような大きな誤差項が現れてしまうのは、包除原理にのみに依拠した式の共通の欠点である。このような困難を回避し、より一般的な状況で篩われた集合の元の個数を近似・評価するのが現代の篩法である。この方法は双子素数予想など、多くの数論上の問題の研究に広く応用されている。

関連項目

[編集]

外部リンク

[編集]
{{bottomLinkPreText}} {{bottomLinkText}}
エラトステネスの篩
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?