Panda Noir

JavaScript の限界を究めるブログです。

素因数分解のアルゴリズム変えました。

いままでは、引数と比べてみて、素数の数字かどうかで判別し、その表になかったらその数より小さい数で割って全部で割り切れなかったら素数のようなことをしていました。

(引数==3 || 引数==5のような感じです。)

でも今回修正をして、素数かどうかの表をあらかじめ作っておいて、その数字にたいする場所が1なら素数、1以外なら素数ではないと返すようにしました。これをすることによってコード短縮が行えました。

(素数[引数]==1という具合です)

いままではひとつ素数を増やすごとに引数==X || と足していかなければいけませんでしたが、今回は素数かどうかの1 or 2を足すだけなので、コードがとても短くなりした。

素数の表(1から5000まで。)と素数かどうか調べる関数(prime())をセットにしたファイル作ったので、よければ使ってください。DL