cp-problems

約数の個数の最大化

問題文

合成数 \(N\) より小さく,\(N\) と共通の素因数を \(K\) 個以上持つような自然数の中で,最も約数の多い自然数 \(M\) を出力するプログラムを作成せよ.\(M\) が複数存在する場合は,最小の \(M\) を出力せよ.

ただしここでいう素因数の個数は,同じ素因数でも複数ある場合には別々に数えるものとする.

例:\(4\) と \(8\) の共通の素因数は \(\{2, 2\}\) で,その個数は \(2\) である.

補足 ある数以下の自然数の中で約数の個数が最も多い自然数を高度合成数という.本問は \(N\) 以下の高度合成数を尋ねている訳ではないので注意が必要である.

制約

\(4 \le N \le 100000\)
\(1 \le K \le 15\)
\(K \lt\)(\(N\) の素因数の個数)

入力

入力は以下の形式で標準入力から与えられます.

入力
\(N\, K\)

出力

\(N\) より小さく,\(N\) の素因数のうち \(K\) 個以上の素因数を持つ,約数の個数が最大の自然数の中で最小の \(M\) を整数で出力してください.

最後に改行してください.

解説