φ(n)
欧拉函数,指的就是小于n与n互质的数的个数。
$$
φ(x)=x(1-\frac{1}{p_1})(1-\frac{1}{p_2})(1-\frac{1}{p_3})…(1-\frac{1}{p_n}),其中p_i为x的质因子
$$
1 | int phi(int n) { |
以下的代码以 O(NlogN)复杂度求出 [2,N] 中每个数的欧拉函数。
1 | void euler(int n) { |
下面利用线性筛法的思想在 O(N)的时间内快速递推出 [2,N] 中每个数的欧拉函数。
1 | typedef long long ll; |
降幂
公式
$$ a^x\equiv a^{x \ mod \ \phi(p) + \phi(p)} (mod \ p)\ (x \geq p) $$快速幂
1 | ll qmod(ll a,ll n,ll mod) |
模板
1 |
|