题目描述
牛牛是一个热爱算法设计的高中生。在他设计的算法中,常常会使用带小数的数进行计算。牛牛认为,如果在 $k$ 进制下,一个数的小数部分是纯循环的,那么它就是美的。
现在,牛牛想知道:对于已知的十进制数 $n$ 和 $m$,在 $k$ 进制下,有多少个数值上互不相等的纯循环小数,可以用分数 $\frac x y$ 表示,其中 $1\le x\le n,1\le y\le m$,且 $x,y$ 是整数。
一个数是纯循环的,当且仅当其可以写成以下形式: $$a.\dot{c_1} c_2 c3 \ldots c{p - 1} \dot{c_p}$$ 其中,$a$ 是一个整数,$p\ge1$;对于 $1\le i\le p$,$c_i$ 是 $k$ 进制下的一位数字。
例如,在十进制下,$0.45454545\dots=0.\dot{4}\dot{5}$ 是纯循环的,它可以用 $\frac 5 {11}$、$\frac{10}{22}$ 等分数表示;在十进制下,$0.1666666\dots=0.1\dot{6}$ 则不是纯循环的,它可以用 $\frac 1 6$ 等分数表示。
需要特别注意的是,我们认为一个整数是纯循环的,因为它的小数部分可以表示成 $0$ 的循环或是 $k-1$ 的循环;而一个小数部分非 $0$ 的有限小数不是纯循环的。
输入格式
输入文件只有一行,包含三个十进制数 $n,m,k$,意义如题所述。
输出格式
只输出一行一个整数,表示满足条件的美的数的个数。
样例 1
input
2 6 10
output
4
满足条件的数分别是: $$1/1 = 1.0000 \ldots \ldots$$ $$1/3 = 0.3333 \ldots \ldots$$ $$2/1 = 2.0000 \ldots \ldots$$ $$2/3 = 0.6666 \ldots \ldots$$ $1/1$ 和 $2/2$ 虽然都是纯循环小数,但因为它们相等,因此只计数一次;同样,$1/3$ 和 $2/6$ 也只计数一次。
样例 2
input
23333 666666 310
output
5089564081
数据范围与提示
对于所有的测试点,保证 $1\le n\le 10^9$,$1\le m\le 10^9$,$2\le k\le2000$。
对于每个测试点,有以下约束(其中留空的表示没有特殊的约束):
测试点编号 | $n$ | $m$ | $k$ |
---|---|---|---|
1 | $\le 10$ | $\le 20$ | $=2$ |
2 | $\le 100$ | $\le 10^4$ | $=2$ |
3 | $\le 1000$ | $=2$ | |
4 | $\le 10000$ | $=2$ | |
5 | $\le 10$ | $\le 20$ | $=3$ |
6 | $\le 100$ | $\le 10^4$ | $=3$ |
7 | $\le 1000$ | $=3$ | |
8 | $\le 10000$ | $=3$ | |
9 | $\le 10$ | $\le 20$ | $\le 100$ |
10 | $\le 100$ | $\le 10^4$ | $\le 100$ |
11 | $\le 1000$ | $\le 1000$ | |
12 | $\le 10000$ | ||
13 | $\le 10^5$ | $\le 10^8$ | $\le 100$ |
14 | $\le 2\times 10^5$ | $\le 1000$ | |
15 | $\le 5\times 10^5$ | ||
16 | $\le 10^6$ | $\le 10^8$ | $\le 100$ |
17 | $\le 2\times 10^6$ | $\le 1000$ | |
18 | $\le 5\times 10^6$ | ||
19 | $\le 10^7$ | $\le 10^8$ | $\le 100$ |
20 | $\le 2\times 10^7$ | $\le 1000$ | |
21 | $\le 2\times 10^7$ | ||
22 | $\le 10^8$ | $\le 10^8$ | |
23 | $\le 10^8$ | $\le 10^8$ | |
24 | |||
25 |