φ(n)\varphi(n)φ(n) 表示 nnn 以内和 nnn 互质的数的个数
- 若 nnn 为质数 φ(n)=n−1\varphi(n)=n-1φ(n)=n−1
- φ(pk)=pk−pk−1=pk(p−1)\varphi(p^k)=p^k-p^{k-1}=p^k(p-1)φ(pk)=pk−pk−1=pk(p−1)
- φ(n)\varphi(n)φ(n) 为积性函数,也就是若 a,ba,ba,b 互质,则 φ(ab)=φ(a)φ(b)\varphi(ab)=\varphi(a)\varphi(b)φ(ab)=φ(a)φ(b)
- ∑d∣nφ(d)=n\sum_{d|n}\varphi(d)=n∑d∣nφ(d)=n
- 欧拉定理:若 a,m(m≥2)a,m(m\ge 2)a,m(m≥2) 互质,aφ(m)≡1(modm)a^{\varphi(m)}\equiv 1\pmod maφ(m)≡1(modm)
- 费马小定理:欧拉定理特殊形式,在 mmm 为质数时,am−1≡1(modm)a^{m-1}\equiv 1\pmod mam−1≡1(modm)
T1
设 f(n)f(n)f(n) 为 nnn 的因数个数,答案就是 n−φ(n)−f(n)+1n-\varphi(n)-f(n)+1n−φ(n)−f(n)+1
加1时因为1被算了2次
T2
考虑一个位置被看到,则有 gcd(x,y)=1\gcd(x,y)=1gcd(x,y)=1。对于一个定的 yyy,合法 xxx 数就是 φ(y)\varphi(y)φ(y)
T3
易发现一个数如果含有一个因子属于 [2,m][2,m][2,m],则不合法。而且我们可以缩小范围,不能包含 [2,m][2,m][2,m] 内的质因子,设为 {p}\{p\}{p}。
类比欧拉函数计算公式,答案即为 n!∏i=1n(1−1pi)n!\prod_{i=1}^n(1-\dfrac 1{p_i})n!∏i=1n(1−pi1)
T4
容易发现我们把一个 aaa,当成两个 p1,p2p_1,p_2p1,p2 的 aaa 来计算,是不影响的。
然后根据欧拉函数的积性,我们把所有质数分开来算是不影响的,现在等价于求 ∑i1∣pc1∑i2∣pc2∑i3∣pc3…φ(∏i)\sum_{i_1|p^{c_1}}\sum_{i_2|p^{c_2}}\sum_{i_3|p^{c_3}}\dots \varphi(\prod i)∑i1∣pc1∑i2∣pc2∑i3∣pc3…φ(∏i)
显然,只要里面那个prod非0,那么其实就等价于他们的积成 p−1p\dfrac {p-1}ppp−1,因此相互之间独立,直接乘起来即可
答案即为:∏p((p−1)(∏i∑j=0ipi−1)p+1)\prod_p(\frac{(p-1)(\prod_i \sum_{j=0}^ip^i-1)}p+1)p∏(p(p−1)(∏i∑j=0ipi−1)+1)
拓展欧拉定理
ab≡ab mod φ(p)+φ(p)(modp)a^b\equiv a^{b\bmod \varphi(p)+\varphi(p)}\pmod pab≡abmodφ(p)+φ(p)(modp)
其中,若 a,pa,pa,p 互质,则 ab≡ab mod φ(p)a^b\equiv a^{b\bmod \varphi(p)}ab≡abmodφ(p)(这个直接用欧拉定理就可以证明了)
我们发现对于 b mod φ(p)b\bmod \varphi(p)bmodφ(p) 的样子,一定形如一种混循环:
如果我们不加 φ(p)\varphi(p)φ(p),我们就可能无法进入的循环里,所以我们要多加一个 φ(p)\varphi(p)φ(p) 来保证进入圈内从而保证正确性。
需要注意的是,在 b<φ(p)b<\varphi(p)b<φ(p) 时,我们指数项不应该加上 φ(p)\varphi(p)φ(p),以下是一组反例 a=2,p=4,b=1a=2,p=4,b=1a=2,p=4,b=1。
T5
不妨设 rp=2222… mod pr_p=2^{2^{2^{2\dots}}}\bmod prp=2222…modp,根据扩展欧拉定理有:
rp≡22222… mod φ(p)+φ(p)(modp)r_p\equiv 2^{2^{2^{2^{2\dots}}}\bmod \varphi(p)+\varphi(p)}\pmod prp≡22222…modφ(p)+φ(p)(modp)
rp≡22φ(p)+φ(p)(modp)r_p\equiv 2^{2_{\varphi(p)}+\varphi(p)}\pmod prp≡22φ(p)+φ(p)(modp)
递归解决即可