当前位置: 首页 > wzjs >正文

建造师信息查询网郑州seo优化

建造师信息查询网,郑州seo优化,电脑有网,青岛知名网站建设公司欧拉函数 欧拉函数 ϕ ( n ) \phi(n) ϕ(n) 表示小于等于 n 的正整数中与 n 互质的数的个数。即: ϕ ( n ) ∣ { k ∈ Z ∣ 1 ≤ k ≤ n , gcd ⁡ ( k , n ) 1 } ∣ \phi(n) \left| \{ k \in \mathbb{Z}^ \mid 1 \leq k \leq n, \gcd(k, n) 1 \} \right| ϕ(n)…

欧拉函数


欧拉函数 ϕ ( n ) \phi(n) ϕ(n) 表示小于等于 n 的正整数中与 n 互质的数的个数。即:

ϕ ( n ) = ∣ { k ∈ Z + ∣ 1 ≤ k ≤ n , gcd ⁡ ( k , n ) = 1 } ∣ \phi(n) = \left| \{ k \in \mathbb{Z}^+ \mid 1 \leq k \leq n, \gcd(k, n) = 1 \} \right| ϕ(n)={kZ+1kn,gcd(k,n)=1}

当  n 是质数的时候,显然有  φ ( n ) = n − 1 。 \text{当 }n\text{ 是质数的时候,显然有 }\varphi(n)=n-1\text{。}  n 是质数的时候,显然有 φ(n)=n1

若  n = p k ,其中  p 是质数,那么  φ ( n ) = p k − p k − 1 。 \text{ 若 }n=p^k\text{,其中 }p\text{ 是质数,那么 }\varphi(n)=p^k-p^{k-1}。   n=pk,其中 p 是质数,那么 φ(n)=pkpk1


求一个数的欧拉函数值,在质因数分解的同时求:

from math import isqrt  
def euler_phi(n):  if n == 1:  return 1  else:  phi = n  max_n = isqrt(n)  for i in range(2, max_n + 1):  if n % i == 0:  phi -= phi // i  while n % i == 0:  n //= i  if n > 1:  phi -= phi // n  return phi

筛法求欧拉函数:

def euler_phi_sieve(n):phi = list(range(n + 1))  # 初始化phi[i] = ifor i in range(2, n + 1):if phi[i] == i:for j in range(i, n + 1, i):  # 遇到质数i 调整i所有倍数的欧拉函数值phi[j] -= phi[j] // ireturn phi


https://www.acwing.com/problem/content/description/4002/

d = gcd(a,m) = gcd(a+x,m)
d|a d|(a+x) --> d|x
我们定义  a ′ = a d , m ′ = m d , x ′ = x d ,那么根据最大公约数的性质,可得: gcd ⁡ ( a ′ + x ′ , m ′ ) = 1 \begin{aligned}\text{我们定义 }a^{\prime}=\frac ad,m^{\prime}=\frac md,x^{\prime}=\frac xd\text{,那么根据最大公约数的性质,可得:}\gcd(a^{\prime}+x^{\prime},m^{\prime})=1\end{aligned} 我们定义 a=da,m=dm,x=dx,那么根据最大公约数的性质,可得:gcd(a+x,m)=1
而题目就转化为了: 求  [ a ′ , a ′ + m ′ − 1 ] 中有几个数与  m ′ 互质。 \text{而题目就转化为了: 求 }[a^{\prime},a^{\prime}+m^{\prime}-1]\text{ 中有几个数与 }m^{\prime}\text{ 互质。} 而题目就转化为了 [a,a+m1] 中有几个数与 m 互质。
因为  [ 0 , a ′ − 1 ] 中在模  m 的意义下的余数与  [ m ′ , a ′ + m ′ − 1 ] 一样 \text{因为 }[0,a^{\prime}-1]\text{ 中在模 }m\text{ 的意义下的余数与 }[m^{\prime},a^{\prime}+m^{\prime}-1]\text{ 一样} 因为 [0,a1] 中在模 m 的意义下的余数与 [m,a+m1] 一样

所以转化为求 p h i ( m ′ ) phi(m') phi(m)

from math import isqrt, gcd
def euler_phi(n):if n == 1:return 1phi = nfor i in range(2, isqrt(n) + 1):if n % i == 0:phi -= phi // iwhile n % i == 0:n //= iif n > 1:phi -= phi // nreturn phit = int(input())
for _ in range(t):a, m = map(int, input().split())d = gcd(a, m)ans = euler_phi(m // d)print(ans)


https://www.acwing.com/problem/content/203/

本题 n ,t 数据范围较小 --> 不然需要 筛法求欧拉函数 , 甚至加上前缀和优化

from math import isqrt
def euler_phi(n):if n == 1:return 1phi = nfor i in range(2, isqrt(n) + 1):if n % i == 0:phi -= phi // iwhile n % i == 0:n //= iif n > 1:phi -= phi // nreturn phit = int(input())
for i in range(1, t + 1):n = int(input())cnt = 0for k in range(n + 1):cnt += euler_phi(k)ans = cnt * 2 + 1print(f"{i} {n} {ans}")


2023蓝桥杯省赛

https://www.lanqiao.cn/problems/3522/learning/

若m和n的质因数组成相同,m是n的k倍,则euler_phi(m)也是euler_phi(n)的k倍
euler_phi(a^b) = euler_phi(a) * a^(b-1)

mod = 998244353
a, b = map(int, input().split())
if a == 1:exit(print(0))from math import isqrt
def euler_phi(n):if n == 1:return 1phi = nmax_n = isqrt(n)for i in range(2, max_n + 1):if n % i == 0:phi -= phi // iwhile n % i == 0:n //= iif n > 1:phi -= phi // nreturn phiprint(pow(a, b - 1, mod) * euler_phi(a) % mod)


欧拉降幂

幂次大于欧拉函数值 --> 欧拉降幂

a b ≡ { a b m o d φ ( m ) , gcd ⁡ ( a , m ) = 1 , a b , gcd ⁡ ( a , m ) ≠ 1 , b < φ ( m ) , ( m o d m ) a ( b m o d φ ( m ) ) + φ ( m ) , gcd ⁡ ( a , m ) ≠ 1 , b ≥ φ ( m ) . a^b\equiv\begin{cases}a^{b\mathrm{~mod~}\varphi(m)},&\gcd(a,m)=1,\\a^b,&\gcd(a,m)\neq1,b<\varphi(m),&(\mathrm{mod~}m)\\a^{(b\mathrm{~mod~}\varphi(m))+\varphi(m)},&\gcd(a,m)\neq1,b\geq\varphi(m).&\end{cases} ab ab mod φ(m),ab,a(b mod φ(m))+φ(m),gcd(a,m)=1,gcd(a,m)=1,b<φ(m),gcd(a,m)=1,bφ(m).(mod m)


模板

https://www.luogu.com.cn/problem/P5091

a, m, b = input().split()  # 读取为字符串(b非常大)
a = int(a)
m = int(m)from math import isqrt, gcd
def euler_phi(n):if n == 1:return 1max_n = isqrt(n)phi = nfor i in range(2, max_n + 1):if n % i == 0:phi -= phi // iwhile n % i == 0:n //= iif n > 1:phi -= phi // nreturn phiif m == 1:exit(print(0))phi = euler_phi(m)
flg = 0
b_mod_phi = 0
for digit in b:b_mod_phi = (b_mod_phi * 10 + int(digit)) % phiif len(b) > len(str(phi)):flg = 1
elif len(b) == len(str(phi)):flg = b >= str(phi)if gcd(a, m) == 1:int_b = b_mod_phi
else:if flg:int_b = b_mod_phi + phielse:int_b = int(b)print(pow(a, int_b, m))


https://www.lanqiao.cn/problems/1155/learning/

n, m = map(int, input().split())
mod = 10**9 + 7
phi = mod - 1x = 1
flg = 0
for i in range(1, m + 1):x *= iif x >= phi:x %= phiflg = 1
if flg:x += phiprint(pow(n, x, mod))


END
*如果有更多问题或需要进一步的帮助,可以在评论区留言讨论哦!
如果喜欢的话,请给

http://www.dtcms.com/wzjs/55723.html

相关文章:

  • discuz做资讯网站合适吗百度导航官网
  • 青岛企业如何建网站一个新手怎么去运营淘宝店铺
  • 怎样做外贸网站软件开发工资一般多少
  • 潍坊seo招聘聊城seo整站优化报价
  • 网站设置在哪里找百度指数电脑端查询
  • 网站公安备案2021关键词搜索排行
  • 网站建设的市场定位分析百度云登陆首页
  • 做百度手机网站排名seo诊断工具有哪些
  • javeweb网站建设站长之家ip地址查询
  • 哪个网站做网站方便关键词优化的建议
  • WordPress导出静态网页2019网站seo
  • 网站兼容性问题百度推广费用怎么算
  • 导航网站开发如何做线上推广
  • 刚做的网站在百度上搜不到深圳网站设计专家乐云seo
  • 谷歌官方建站服务腾讯广告投放推广平台
  • 随州网站制作seo公司上海
  • 怎样用电脑做网站服务器百度手机助手下载安装
  • php做网站如何关键词优化排名软件流量词
  • 射阳住房和建设局网站系统优化方法
  • 珠海政府网站建设公司渠道销售怎么找客户
  • 太原网站设计自建站模板
  • 东莞网站设计行情百度广告收费标准
  • 0元试用网站开发关键词排名怎么做好
  • .php是什么网站申请网址怎么申请的
  • 齐齐哈尔住房和城乡建设局网站seo具体seo怎么优化
  • 小型企业网站建设谷歌广告联盟官网
  • 长沙网站推广公司哪家好网络营销的内容
  • wordpress 香港主机沈阳网站推广优化
  • 怎么做送餐网站湖南优化推广
  • 快速网站开发巨量算数