利用容斥原理求解 [a,b] 区间中与 n 互质的数字个数(HDU 4135 & ZOJ 3547)

先看这道丧心病狂的题目:HDU 4135 Co-prime。题目大意就是,有 T 组询问,每组询问给你三个数:a, b, c,问你闭区间 [a,b] 中有多少个数字与 n 互质。数据范围是:1 \leqslant A \leqslant B \leqslant 10^{15}1 \leqslant N \leqslant 10^5

乍一看毫无头绪,仿佛怎么做都会超时……其实用容斥的想法就很容易了~

欧拉函数 φ(n) 的几个常用性质

之前我们已经知道欧拉函数 \varphi(n) 的计算公式:

\displaystyle \varphi (n)=n \ast \prod_{i-1}^{r} (\frac {p_i-1} {p_i})

我们还知道它的两条性质:
如果\varphi(x)中的x是质数 p 的 k 次幂,那么 \displaystyle \varphi (x)=\varphi (p^k)=(p-1)p^{k-1}
欧拉函数是积性函数,如果 x 和 y 互质,则 \varphi(xy)=\varphi(x) \varphi(y)=(x-1)(y-1)

今天我们要证明上述性质,再介绍几条新的性质。

乘法逆元(Multiplicative Inverse Modulo)三种求法总结

当我们取模的时候,被模数很大,无法直接计算其值,我们就会用取模运算的下面两个性质:

\displaystyle (a+b) \bmod x=((a \bmod x)+(b \bmod x))\bmod x \\
\displaystyle (a\ast b) \bmod x=((a \bmod x)\ast (b \bmod x))\bmod x

那么对于除法,是否也满足这个式子呢?

\displaystyle (a \div b) \bmod x=((a \bmod x)\div (b \bmod x))\bmod x

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。