同じ素因数を複数持つ場合, その回数だけ出力する. たとえば入力が 40 の場合には, 出力はこうなる.2 3 5
となる. また, 入力が素数だった場合, たとえば 29 の場合には, その数だけを出力する.2 2 2 5
29
(ヒント) 与えられた数を「小さな素数」から順に割っていけばよい. たとえば 40 だったら, まず 2 で割れるので 20, さらに 2 で割れるので 10, さらに 2 で割れるので 5. もう 2 では割れなくなったから, 次の素数である 3 でやってみると, 割れない. 次の素数の 5 でやってみると割り切れて結果は1. これで素因数分解は終了ということになる.ただ, この方式では, 素数をあらかじめ準備しておかないといけない. そこで計算は遅くなるけれどそれを省くアイデアをひとつ. 「小さな素数」ではなく「小さな整数」で順に割っていっても 同じ結果が得られる. なぜなら, 合成数で割れることがあるなら, その合成数の素因数でその前に割れているはずだから.