Yoppy's Blog

主に何でもない日常の事や技術/ガジェットネタを更新します

JavaScriptで素数かどうかを判定する関数

JavaScript素数かどうかを判定する関数

すごい今更感ありますが、素数に関するドキュメンタリーを見て(某リーマン予想のドキュメンタリー)急にやりたくなったのと思った以上にハマったので書きます。

素数の性質

ここで改めて素数の性質(判定では以外と重要だったりする)を思い出しましょう。

  • 1とその数以外に約数をもたない自然数

でしたよね。

=>このことから「素数の約数は2つである。」事がわかります。

コード

script.js

function isPrimeNum(num) {
	var cnt = 0;
	var numbersArray = new Array();
	if(isNaN(num)) {
		throw new TypeError();
	}
	for(var i = 0; i <= num; i++) {
		numbersArray[i] = i;
	}
	for(var i = 0; i < numbersArray.length; i++) {
		if(i == 0) {
			continue;
		}
		if((num % numbersArray[i]) == 0) {
			cnt++;
		}
	}
	return cnt == 2;
}

とまあこんな感じです。

改めて思いましたが素数ってすごい神秘ですよね...不思議です。


 

HP: http://yoppy.webcrow.jp