LL exlucas(LL m, LL n, LL P) {
int cnt = 0;
LL p[20], a[20];
for (LL i = 2; i * i <= P; i++) {
if (P % i == 0) {
p[++cnt] = 1;
while (P % i == 0) p[cnt] = p[cnt] * i, P /= i;
a[cnt] = multilucas(m, n, i, p[cnt]);
}
}
if (P > 1) p[++cnt] = P, a[cnt] = multilucas(m, n, P, P);
return CRT(cnt, a, p);
}
为什么题解和 OI−Wiki 上关于枚举 P 的质因子都是 i∗i<P 这样不会导致大因子扫不到吗
是这段代码的影响吗
if (P > 1) p[++cnt] = P, a[cnt] = multilucas(m, n, P, P);