本文搬运自本人初中博客园博客,若图片加载不出来,可到原文查看:https://www.cnblogs.com/zhangtingxi/p/15657340.html
Lacus
求:
Cmn mod p
则:
Cmn mod p=Cpmpn×Cm mod pn mod p mod p
由于 Cm mod pn mod p 上下两项都比 p 小,可以直接套组合数公式。
而前面 Cpmpn 可以继续套lucas求解。
证明懒得写。
Code:
1 2 3 4 5
| int lucas(int m, int n) { if(m==0) return 1; return lucas(m/p, n/p)*C(m%p, n%p)%p; }
|