No.644

を素因数分解したときの素因数の列とする. ただし, 同じ素因数が複数個含まれる場合はそれらを区別する. たとえば, のときは, という感じである.

こうすることで, gcd は積集合を, lcm は和集合を計算する操作となる.

のときは,

初期状態:

1回目の操作後:

2回目の操作後:

となり, 以下同様に操作していくと, 最終的には が残る. すなわち, 最後に残る数は である. これが になる組み合わせの数を求めればいい.

これは (, は互いに素) となる の個数である.

を固定すれば, の素因数を含まない値の個数であり, 包除原理を使って求めることができる. なので素因数の種類は高々6つであり計算量も問題はない.

最後に 以降はどう並べてもいいので, を掛ける.