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

赣州网站制作较好的公司如何给自己的公司做网站

赣州网站制作较好的公司,如何给自己的公司做网站,建设网上银行怎么开通,微信商户平台登录入口文章目录 欧拉函数定义性质计算公式求某个数欧拉函数值线性筛求区域内欧拉函数 欧拉函数 定义 在[1,n]的范围内所有与n互质的数字的个数。 我们用 φ ( n ) \varphi(n) φ(n)来表示数字n的欧拉函数的值,例如: φ ( 4 ) 2 \varphi(4)2 φ(4)2&#xf…

文章目录

    • 欧拉函数
      • 定义
      • 性质
      • 计算公式
      • 求某个数欧拉函数值
      • 线性筛求区域内欧拉函数

欧拉函数

定义

在[1,n]的范围内所有与n互质的数字的个数。

我们用 φ ( n ) \varphi(n) φ(n)来表示数字n的欧拉函数的值,例如: φ ( 4 ) = 2 \varphi(4)=2 φ(4)=2,与在[1,4]中与4互质的数字是:1 3,有两个,因此 φ ( 4 ) = 2 \varphi(4)=2 φ(4)=2

性质

  1. 如果n是一个质数: φ ( n ) = n − 1 \varphi(n)=n-1 φ(n)=n1
  2. 如果n是一个质数,则存在 n k n^k nk,则 φ ( n k ) = ( n − 1 ) ⋅ n k − 1 \varphi(n^k)=(n-1) \cdot n^{k-1} φ(nk)=(n1)nk1
  3. 积性函数:如果 g c d ( m , n ) = 1 gcd(m,n)=1 gcd(m,n)=1,则 φ ( m n ) = φ ( m ) ⋅ φ ( n ) \varphi(mn)=\varphi(m)\cdot \varphi(n) φ(mn)=φ(m)φ(n)

计算公式

根据整数唯一分解定理 n = ∏ i = 1 s p i a i n=\prod_{i=1}^{s}p_i^{a_i} n=i=1spiai,即任何一个正整数都可以分解为若干个质数的 a i a_i ai次幂的连乘积,其中 s s s为质因子的个数。

因此:
φ ( n ) = ∏ i = 1 s φ ( p i a i ) = ∏ i = 1 s ( p i − 1 ) ⋅ p i a i − 1 = ∏ i = 1 s ( 1 − 1 p i ) ⋅ p i a i = n ⋅ ∏ i = 1 s p i − 1 p i \varphi(n)=\prod_{i=1}^{s} \varphi(p_i^{a_i}) = \prod_{i=1}^{s}(p_i -1)\cdot p_i ^{a_{i} -1} = \prod_{i=1}^{s}(1- \frac{1}{p_i}) \cdot p_i^{a_i}=n\cdot \prod_{i=1}^{s}\frac{p_i -1}{p_i} φ(n)=i=1sφ(piai)=i=1s(pi1)piai1=i=1s(1pi1)piai=ni=1spipi1

因此我们可以得到欧拉函数的计算公式 φ ( n ) = n ⋅ p 1 − 1 p 1 ⋅ p 2 − 1 p 2 ⋯ p s − 1 p s \varphi(n) = n \cdot \frac{p_1-1} {p1} \cdot \frac{p_2-1}{p2} \cdots\frac{p_s-1}{p_s} φ(n)=np1p11p2p21psps1

通俗来讲, n n n的欧拉函数值就是 n n n对每个质因数分解所得到的质因数进行操作后的连乘积 然后再乘一个 n n n

因此欧拉函数的值与n和他的质因子有关,与项数无关


求某个数欧拉函数值

根据我们刚才得到的欧拉函数的计算公式,可以得到某个值的欧拉函数的值,我们可以使用试除法来计算

typedef long long ll;
//1. 试除法求欧拉函数:某一个确切的值的欧拉函数
ll fun1(int n){ll phi=n;for (int i=2;1ll*i*i<=n;i++){ //防止溢出if (n%i==0){  //如果是一个质因子phi=phi/i*(i-1); //计算欧拉函数值while (n%i==0){ //分解质因子n/=i;}}}if (n>1){phi=phi/n*(n-1); //最后还剩其自身}return phi;
}

线性筛求区域内欧拉函数

如果 n n n 是质数,则 φ ( n ) = n − 1 \varphi(n)=n-1 φ(n)=n1
在线性筛中,一个合数一定是被他的最小质因子筛掉的。假设这个最小质因数是 p j p_j pj,因此一定存在一个 m = p j ⋅ i m=p_j \cdot i m=pji
此时会出现两种情况:

  1. 如果 i i i 能够被 p j p_j pj 整除,则 i i i 一定包含了 p j p_j pj 的所有质因子,因此我们可以得到:
    φ ( m ) = m ⋅ ∏ k = 1 s p k a k = p j ⋅ i ⋅ ∏ k = 1 s p k a k = p j ⋅ φ ( i ) \varphi(m)=m \cdot \prod_{k=1}^{s}p_k^{a_k} = p_j \cdot i \cdot \prod_{k=1}^{s}p_k^{a_k} = p_j \cdot \varphi(i) φ(m)=mk=1spkak=pjik=1spkak=pjφ(i)
  2. 如果 i i i 不能被 p j p_j pj 整除,则 i i i p j p_j pj 一定是互为质数的,因此有以下式子:
    φ ( m ) = φ ( p j ) ⋅ φ ( i ) = φ ( i ) ⋅ ( p j − 1 ) \varphi(m)=\varphi(p_j) \cdot \varphi(i) = \varphi(i) \cdot (p_j-1) φ(m)=φ(pj)φ(i)=φ(i)(pj1)

并且通过这种线性筛,我们可以得到 [ 1 , n ] [1,n] [1,n]范围内的所有的数字的欧拉函数。

最后代码如下:

//2. 筛法求欧拉函数:任意范围内的数值
const int N=1e8+10;
int primes[N]; //存储质数
bool vis[N]; 
int phi[N]; //存储每个数字的欧拉哈数
std::vector<int> vec;
void fun2(int n){int cnt=0;for (int i=2;i<=n;i++){if (!vis[i]){primes[++cnt]=i;//质数i的欧拉函数就是i-1phi[i]=i-1;}for (int j=1;1ll*i*primes[j]<=n;j++){int m=i*primes[j];vis[m]=true;if (i%primes[j]==0){phi[m]=phi[i]*primes[j];break; //整除中断}else{phi[m]=phi[i]*(primes[j]-1);}}}
}
http://www.yayakq.cn/news/352141/

相关文章:

  • 太原免费静态网站制作台州响应式建站
  • 网站建设策划包括哪些内容wordpress手机端源码
  • 网站定制开发哪家做的好网站建设iis
  • 网站开发使用哪种语言wordpress vue react
  • 设计网站价格表无为网站设计
  • 静态做头像的网站北京asp网站设计制作
  • 巩义网站公司wordpress get_most_viewed
  • 杭州网站建设 乐云践新专家小程序开发平台哪里做得好
  • 模块式网站制作保障网装修平台
  • 天津站设计单位开一个小公司需要多少钱
  • wordpress 制作网站手机网站绑定域名是什么意思
  • 网站备案一般需要多久免费公司企业建站代理
  • 网上骗人彩票网站是怎么做的雄安建设网站制作
  • 做网站到内容填充需要多久哪个浏览器看黄页最快夸克浏览器
  • 电商网站排行重庆做网站电话
  • 单位做网站费用怎么记账林芝北京网站建设
  • 如何在vps上建设网站网站不收录是什么原因
  • 单页面的网站模板免费下载微信公众号广告投放价格表
  • 北京互联网网站建设网站后台管理水印怎么做
  • wordpress查用户ip工具类网站怎么优化seo
  • 商业网站建设者写作平台
  • 招聘网站套餐费用怎么做分录企业网站建设流程图
  • 南宁市建设厅官方网站深圳纯设计的室内设计公司
  • 网站建设 APP开发销售怎么做玉器企业网站源码
  • 公司网站要备案吗dw做的网站解压后为什么没了
  • 江苏网站建设效果好长沙行业网站建设
  • 武进网站建设价格互联网金融型网站开发
  • yfcmf做网站网站源码asp
  • 织梦 营销型网站开发网站设计公司
  • 重庆快速网站备案唐山网站制作系统