素因数分解をするJavaSvriptです。
・GoogleChromeでは15桁くらいまで正しく動くようです。
・入力のエラーチェックはしていません。

割り切れるかどうかチェックして割るだけです。2の倍数、3の倍数、5の倍数をスキップします。


素因数分解のブログラムは、2の倍数をスキップするだけのサンプルプログラムをよく見かけますが、ちょっと考えると3の倍数をスキップできます。2の倍数と3の倍数を除いた数列を書いてみると、
2,3,5,7,11,13,17,19,23,25,29…
隣り合う数字の差をとると、
1,2,2,4,2,4,2,4,2,4…
5から後は、差は2,4の繰り返しです。これを利用して、3の倍数をスキップすることができます。
それをもう少し発展させて、5の倍数もスキップさせるには、
2,3,5,7,11の後、割る数に「2,4,2,4,6,2,6,4」の順に加算する繰り返しで行けます。
7の倍数もスキップしようとすると、そろそろ大変なことになります。

戻る