[アルゴリズム] 1から100までの素数を取得(JavaScript編)

geometry-1044090_1280
LINEで送る
Share on GREE
Share on LinkedIn

素数の算出って前からコーディングしておきたかったんですよね。
とりあえず、この間、会社の人に「素数って何?」と聞かれて、知らない大人がいるのかと内心ビックリしていたんですが、
素数を知ってる人って理数系っている定義、必要ですか?
「複素数」を知らないのは100歩譲って許すが、素数は知らないと恥ずかしいレベルだろ!と思うのは僕だけでしょうか?

素数について

とりあえず、どうしてもわからない人の為に簡単に説明しておきます。
https://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0
wikipediaでは

1より大きい自然数で、正の約数が 1と自分自身のみであるもののことである

ようするに、1以外で割り切れない数の事で、1は素数に入らないという事から、素数の最小数は2という事になる。

素数のギネス記録

ちなみに、素数の最大数は

2を4311万2609乗し、1を引いた数(1297万8189桁)

という数値らしいです。まったく想像できん・・・orz

ソースコード

実行

100までの数字で素数は25個存在するという事ですね。
wikipediaに正解が書かれているんですが、どうやら問題なく正解のようですね。

解説

素数の性質から2からスタートして100までのfor文

基本for文と割り込む関数内のfor文が2からスタートしているのは、このためです。

getPrimeNumber関数

素数であればtrueを返し、割り切れる数が存在すれば、falseを返すようにしてます。
%の余剰を使って割り切れるかどうかを判定してます。

余談・・・

素数の計算式というのがあって、
スクリーンショット 2017-02-22 22.53.54
という式です。
詳しく知りたい人はググッてもいいし、数学勉強して理解してみてください。
ここでは、この式の解説は行いません。

リンク

素数計算プログラム

Javascript

アルゴリズム過去記事

http://wordpress.ideacompo.com/?cat=562&tag=Algorithm

Leave a Reply

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*