問題一覧 > 通常問題

No.2365 Present of good number

レベル : / 実行時間制限 : 1ケース 2.000秒 / メモリ制限 : 512 MB / 標準ジャッジ問題
タグ : / 解いたユーザー数 89
作問者 : Kak1_n0_tane / テスター : logx shobonvip Carpenters-Cat comavius
6 ProblemId : 6685 / 出題時の順位表 / 自分の提出
問題文最終更新日: 2023-06-30 14:32:25

問題文

ぴなさんは素因数分解が好きです。

ところで、関数列 fn{f_n} は以下のように定義されます。

  • 22 以上の整数 A=p1a1p2a2pmamA = p_1^{a_1} \cdot p_2^{a_2} \cdots p_m^{a_m} に対し、f(A)=(p1+1)a1(p2+1)a2(pm+1)amf(A) = (p_1+1)^{a_1} \cdot (p_2+1)^{a_2} \cdots (p_m+1)^{a_m}
    ただし, p1, p2, pmp_1{,}\ p_2{,}\ \dots p_m は相異なる素数、a1, a2, ama_1{,}\ a_2{,}\ \dots a_m11 以上の整数
  • 22 以上の整数 AA に対し、f1(A)=f(A)f_1(A) = f(A)
  • 22 以上の整数 A, nA{,}\ n に対し、fn(A)=f(fn1(A))f_n(A) = f(f_{n-1}(A))

fK(N)f_K(N) を求めてください。 ただし 答えは非常に大きくなる可能性があるので、109+710^9+7 で割った余りを出力してください。

入力

N KN\ K

  • 2N1052 \leq N \leq 10^5
  • 1K10181 \leq K \leq 10^{18}
  • 入力はすべて整数
  • 出力

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

    サンプル

    サンプル1
    入力
    1001 1
    出力
    1344

    1001=711131001 = 7 \cdot 11 \cdot 13 なので、f1(1001)=f(1001)=(7+1)(11+1)(13+1)=1344f_1(1001) = f(1001) = (7+1) \cdot (11+1) \cdot (13+1) = 1344 です。

    サンプル2
    入力
    2 10
    出力
    294967268

    f10(2)=4294967296f_{10}(2) = 4294967296 です。109+710^9+7 で割った余りは 294967268294967268 なので、これを出力してください。

    提出するには、Twitter 、GitHub、 Googleもしくは右上の雲マークをクリックしてアカウントを作成してください。