HELLO WORLD--一起加油(🍺)!|

kingwzun

园龄:3年6个月粉丝:111关注:0

2022-07-22 17:18阅读: 296评论: 0推荐: 0

数论 _ 互质与欧拉函数

概念

互质
若gcd(a,b)=1 则称a与b互质。

欧拉函数
1~N 中与N 互质的数的个数被称为欧拉函数,记为φ(N)
若N根据算术基本定理分解为N=p1c1p2c2...pmcm

φ(n)=ni=1m(11p)

证明:

设p 是 N 的质因子,1~N中的倍数有p,2p,3p....(N/p)×pNp个。 同理,若 q 也是N的因子,则1~N中q的倍数有N/q个。
如果我们把这 Np+Nq个数去掉,那么 p×q 的倍数被排除了两次,根据容斥原理,需要加回来一次。
因此,1~N 中不与N 含有共同质因子p或q 的数的个数为:
image
式子展开后就和上面的容斥原理一样了,证毕。

模板代码

求一个数phi

根据计算式,我们只需要再分解质因数,即可顺便求出一个数的欧拉函数

上限复杂度: O(n)
下限复杂度: O(logn)
模板代码

int phi(int x)
{
int res = x;
for (int i = 2; i <= x / i; i ++ )
if (x % i == 0)
{
res = res / i * (i - 1);
while (x % i == 0) x /= i;
}
if (x > 1) res = res / x * (x - 1);
return res;
}

求1 ~ n的phi

如果与上面的方法来求1~n的欧拉函数复杂度是O(nn)
如果在线性筛法过程中求欧拉函数,时间复杂度: O(n)

typedef long long LL;
const int N = 1000010;
int primes[N], cnt;
int euler[N];
bool st[N];
void get_eulers(int n)
{
euler[1] = 1;
for (int i = 2; i <= n; i ++ )
{
if (!st[i])
{
primes[cnt ++ ] = i;
euler[i] = i - 1;
}
for (int j = 0; primes[j] <= n / i; j ++ )
{
int t = primes[j] * i;
st[t] = true;
if (i % primes[j] == 0)
{
euler[t] = euler[i] * primes[j];
break;
}
euler[t] = euler[i] * (primes[j] - 1);
}
}
}

性质

性质0
对于质数p,它的欧拉函数值ϕ(p)=p1

证明:
因为p为质数,所以比它小的数都和它互质,即在1~p中共有p-1个数和它互质。
证毕。

性质1
n>1,1~n中与n 互质的数的和为n×φ(n)2

证明

由于gcd(n,x)=gcd(n,n-x),所以与n互质的数xnx是"成对"的出现。进而n+(n-x)=n. 就得出了

性质2
若a,b互质,则φ(ab)=φ(a)φ(b)
证明

a,b互质,所以分解质因数没有一样的,根据欧拉函数的公式就可以将 φ(a) ,φ(b)合并得出了φ(N)。

把性质2推过到一般函数可以得到积性函数的概念。
积性函数:对于任意互质的整数a和b有性质f(ab)=f(a)f(b)的数论函数)

性质2.1
当n为奇数时,ϕ(2n)=ϕ(n)

证明:
当n为奇数时,n与2互质由欧拉函数是积性函数可知,n与2互质时,ϕ(2n)=ϕ(2)∗ϕ(n)又因为ϕ(2)=1所以ϕ(2n)=ϕ(n)
证毕。

性质3
p 为质数,若p|n 且p2|n,则φ(n)=φ(np)×p

证明

y由p2|n可知 φ(Np) 中有质因数有p,因此将 φ(N)φ(Np)的欧拉函数表达式写出后,相除结果就是p,所以性质成立。

性质4
p 为质数,若p|n 且p2
不n整除,则φ(n)=φ(np)(p1)

证明

p2不被n整除可知p与n/p互质,由于φ是积性函数,故 φ(n)=φ(np)φ(p) ,而 φ(p)=p1,所以性质成立。

性质5
n=pk时,ϕ(n)=pkpk1
证明:

因为n=pk,所以n只有p一个质因数,则由欧拉函数的计算式可得ϕ(n)=pk(11p)=pkpk1

性质6
d|nφ(d)=n

本文作者:kingwzun

本文链接:https://www.cnblogs.com/kingwz/p/16506455.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   kingwzun  阅读(296)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起