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 翻译