BSGS模板 + 小学奥数技巧
题目描述
给定整数$K$和质数$m$,求最小的正整数$N$,使得$11…1(\text{(N个1)}) \equiv K(mod ;m)$.
Input & Output’s Examples
Inputs’ e.g. #1
1 | 9 17 |
Outputs’ e.g.#1
1 | 3 |
分析
这题乍一看不好解决,所以说我们需要一点小学奥数的技巧.
首先我们把同余式两边乘上一个$9$,再加上一个$1$,就可以得到:
$$10^N \equiv 9K + 1(mod ; m)$$
然后我们直接套用BSGS模板求解即可,注意,在进行BSGS的时候可能会两个long long
相乘而爆掉,于是我们需要手写快速乘.
代码
1 | // luogu-judger-enable-o2 |