JScript+WSHでプログラミング基礎100本ノック その38 実践3 素因数分解
課題
840を素因数分解し、下記のような素因数を出力してください。
2
2
2
3
5
7
続行するには何かキーを押してください . . .
ヒント
割る数を徐々に大きくし素因数か調べていく。
素因数だった場合は、割られる数を素因数で割って小さくする。
コード例
main.js
--------
var num = 840; // 調べる数
var dev = 2; // 割る数
while(true){
// 調べる数が割る数で割り切れたら、割る数は素因数となる
// 素因数が見つかった場合、次の調べる数は調べす数÷割る数した数となる
if(num % dev == 0){
WScript.echo(dev);
num = num / dev;
continue;
}else{
dev++; // 割り切れなかったら1を足す
}
// 割られる数が1となったり、割る数が割られる数より大きくなったら終了
if(num == 1){
break;
}else if(dev > num){
WScript.echo(num);
break;
}
}
出力結果
2
2
2
3
5
7
続行するには何かキーを押してください . . .
解説
実際作ってみると案外難しいと思います。
また、この記事の公開日を数字とした20241028だと下記のようになります。
2
2
5060257
続行するには何かキーを押してください . . .
素因数分解の高速化アルゴリズムもありますが、ここでは扱いません。
この記事が気に入ったらサポートをしてみませんか?