欧拉函数 简单题

φ(n)\varphi(n)φ(n) 表示 nnn 以内和 nnn 互质的数的个数

  • nnn 为质数 φ(n)=n−1\varphi(n)=n-1φ(n)=n1
  • φ(pk)=pk−pk−1=pk(p−1)\varphi(p^k)=p^k-p^{k-1}=p^k(p-1)φ(pk)=pkpk1=pk(p1)
  • φ(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)=ndnφ(d)=n
  • 欧拉定理:若 a,m(m≥2)a,m(m\ge 2)a,m(m2) 互质,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 mam11(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(1pi1)

T4

在这里插入图片描述在这里插入图片描述

容易发现我们把一个 aaa,当成两个 p1,p2p_1,p_2p1,p2aaa 来计算,是不影响的。

然后根据欧拉函数的积性,我们把所有质数分开来算是不影响的,现在等价于求 ∑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)i1pc1i2pc2i3pc3φ(i)

显然,只要里面那个prod非0,那么其实就等价于他们的积成 p−1p\dfrac {p-1}ppp1,因此相互之间独立,直接乘起来即可

答案即为:∏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(p1)(ij=0ipi1)+1)

拓展欧拉定理

ab≡ab mod φ(p)+φ(p)(modp)a^b\equiv a^{b\bmod \varphi(p)+\varphi(p)}\pmod pababmodφ(p)+φ(p)(modp)

其中,若 a,pa,pa,p 互质,则 ab≡ab mod φ(p)a^b\equiv a^{b\bmod \varphi(p)}ababmodφ(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=2222modp,根据扩展欧拉定理有:

rp≡22222… mod φ(p)+φ(p)(modp)r_p\equiv 2^{2^{2^{2^{2\dots}}}\bmod \varphi(p)+\varphi(p)}\pmod prp22222modφ(p)+φ(p)(modp)

rp≡22φ(p)+φ(p)(modp)r_p\equiv 2^{2_{\varphi(p)}+\varphi(p)}\pmod prp22φ(p)+φ(p)(modp)

递归解决即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值