AT_arc004_4 [ARC004D] 表現の自由 ( Freedom of expression )
Description
[problemUrl]: https://atcoder.jp/contests/arc004/tasks/arc004_4
整数 $ N $ と $ M $ が与えられる時、整数 $ N $ を $ M $ 個の整数の積で表す方法は何通りあるでしょうか。
その答えを $ 1,000,000,007 $ で割った余りを答えてください。 入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $
- 入力は $ 1 $ 行のみからなり、整数 $ N(1\ ≦\ |N|\ ≦\ 10^9) $ と整数 $ M(1\ ≦\ M\ ≦\ 10^5) $ が空白区切りで与えられる。
整数 $ N $ を $ M $ 個の整数の積で表す方法の数を $ 1,000,000,007 $ で割った余りを標準出力に $ 1 $ 行で出力せよ 。
なお、最後には改行を出力せよ。 ```
10 2 ``` ```8 ``` - $ 10 $ を $ 2 $ つの整数の積で表す方法は以下の $ 8 $ 通りになります。 - $ 1\ \times\ 10 $ - $ 2\ \times\ 5 $ - $ 5\ \times\ 2 $ - $ 10\ \times\ 1 $ - $ (-1)\ \times\ (-10) $ - $ (-2)\ \times\ (-5) $ - $ (-5)\ \times\ (-2) $ - $ (-10)\ \times\ (-1) $ ```1000000000 1 ``` ```1 ``` - $ 1,000,000,000 $ を $ 1 $ つの積で書き表すには $ 1,000,000,000 $ と書くしか無いので、$ 1 $ 通りになります。 ```-2 3 ``` ```12 ``` - $ -2 $ を $ 3 $ つの整数の積で表す方法は以下の $ 12 $ 通りになります。 - $ 1\ \times\ 1\ \times\ (-2) $ - $ 1\ \times\ 2\ \times\ (-1) $ - $ 1\ \times\ (-1)\ \times\ 2 $ - $ 1\ \times\ (-2)\ \times\ 1 $ - $ 2\ \times\ 1\ \times\ (-1) $ - $ 2\ \times\ (-1)\ \times\ 1 $ - $ (-1)\ \times\ 1\ \times\ 2 $ - $ (-1)\ \times\ 2\ \times\ 1 $ - $ (-1)\ \times\ (-1)\ \times\ (-2) $ - $ (-1)\ \times\ (-2)\ \times\ (-1) $ - $ (-2)\ \times\ 1\ \times\ 1 $ - $ (-2)\ \times\ (-1)\ \times\ (-1) $ ```50 1000 ``` ```96554651 ```
Input Format
N/A
Output Format
N/A