摘要:
(1) Lucas定理:p为素数,则有: $C_{n}^{m}\equiv \prod_{i=0}^{k}C_{a_{i}}^{b_{i}}(mod\ p)$ 其中$n=a_{k}p^{k}+a_{k-1}p^{k-1}+...+a_{0}$, $m=b_{k}p^{k}+b_{k-1}p^{k-1 阅读全文
摘要:
1 算法定义: 给定两个数$a,b$,设$Gcd(a,b)=d$,则存在整数$x,y$,使得$x*a+y*b=d$。扩展欧几里得算法可以计算出$x,y$ 2 算法实现: $Gcd(a,b)=Gcd(b,a\ mod \ b)$.因此,假设$bx+(a\ mod \ b)y=d$,即$bx+(a-\l 阅读全文
摘要:
素数筛法. 从每一个素数开始, 把它的倍数设置为非素数.这样从小到达枚举的时候, 不是非素数的就是素数. #include <cmath> #include <vector> template <typename TYPE, typename = std::enable_if_t<std::is_i 阅读全文
摘要:
(1)定义: 一个数n的欧拉函数一个数$\phi(n)$,表示$[1,n]$中与$n$互质的数的个数。比如$\phi(1)=1, \phi(2)=1,\phi(3)=2,\phi(4)=2$ (2)计算方法: 设$p_{1}<p_{2}<..<p_{k}$是$n$的$k$个质因数,$phi(n)=n 阅读全文
摘要:
(1)原根的定义 对于两个正整数$gcd(a,m)=1$,由欧拉定理可知,存在正整数$d \leq m-1$, 比如说欧拉函数$d=\phi (m)$,即小于等于 m 的正整数中与 m 互质的正整数的个数,使得$a^{d}\equiv 1(mod\ m)$。由此,在$gcd(a,m)=1$时,定义$ 阅读全文
摘要:
什么是同余模呢?比如21%6=3,21%8=5,21%11=10,就是给出(6,3)(8,5)(11,10)这样的数对来求一个最小的正整数X,满足: X%6=3; X%8=5; X%11=10。 怎么解决这个问题呢?首先我们将这样的数对表示为(m,r),设有两个(m1,r1),(m2,r2),设答案 阅读全文