AT_arc004_4 [ARC004D] 表現の自由 ( Freedom of expression )

题目描述

给定整数 $N$ 和 $M$,请问将整数 $N$ 表示为 $M$ 个整数的乘积的方法有多少种? 请输出该答案对 $1,000,000,007$ 取模的结果。输入以如下格式从标准输入中给出。 > $N$ $M$ - 输入仅一行,由整数 $N$($1 \leq |N| \leq 10^9$)和整数 $M$($1 \leq M \leq 10^5$)以空格分隔给出。 请输出将整数 $N$ 表示为 $M$ 个整数的乘积的方法数,对 $1,000,000,007$ 取模的结果。 最后请输出换行符。 例如: ``` 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 ```

输入格式

输入仅一行,包含两个整数 $N$ 和 $M$,以空格分隔。

输出格式

输出一个整数,表示将 $N$ 表示为 $M$ 个整数的乘积的方法数,对 $1,000,000,007$ 取模。最后输出换行符。

说明/提示

无。 由 ChatGPT 4.1 翻译