No.644
を を素因数分解したときの素因数の列とする. ただし, 同じ素因数が複数個含まれる場合はそれらを区別する. たとえば, のときは, という感じである.
こうすることで, gcd は積集合を, lcm は和集合を計算する操作となる.
のときは,
初期状態:
1回目の操作後:
2回目の操作後:
となり, 以下同様に操作していくと, 最終的には が残る. すなわち, 最後に残る数は である. これが になる組み合わせの数を求めればいい.
これは (, は互いに素) となる の個数である.
を固定すれば, は の素因数を含まない値の個数であり, 包除原理を使って求めることができる. なので素因数の種類は高々6つであり計算量も問題はない.
最後に 以降はどう並べてもいいので, を掛ける.