欧拉函数性质及推导

博客围绕欧拉函数展开,先介绍互质概念,接着给出欧拉函数定义,即中与互质数的个数。依据算数基本定理推导欧拉函数公式,还阐述了其积性函数特性,最后延伸出欧拉函数的两个性质,如质数与约数相关的性质推导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

互质

  • gcd(a,b) = 1a,b互质,
  • gcd(a,b,c) = 1 则两两互质
    gcd(a,b) = gcd(a,c) = gcd(b,c) = 1

欧拉函数

定义:[1,N)中与N互质数的个数被称为欧拉函数,记作 υ(N)\upsilon(N)υ(N)
由算数基本定理知:N=p1c1∗p2c2∗p3c3∗……∗piciN = p_1^{c_1} * p_2^{c_2}*p_3^{c_3}*……*p_i^{c_i}N=p1c1p2c2p3c3pici

  1. 先推倒i=2 c1=1 c2=1的情况,
    质因子为p,q,1~N中除去p的倍数, p,2p,3p,....,[n/p]*p, 那么1~N中有N/pp的倍数, 同理q也有N/qq的倍数,那么 υ(N)=N−N/q−N/p\upsilon(N)=N-N/q-N/pυ(N)=NN/qN/p,

    此时我们忽略了p,q同时被除去的倍数(应该是根据容斥定理),例如2*3 3*2被计算2次,那么加上N/(p*q)个被减去2次的数的个数 就是所求的欧拉函数,(p*q)p,q的最小公倍数,p,q的倍数一定是p*q的倍数,所以除以p*q

    所以 υ(N)=N−N/p−N/q+N/(p∗q)\upsilon(N)=N-N/p-N/q+N/(p*q)υ(N)=NN/pN/q+N/(pq)
    υ(N)=N(1−1/q)(1−1/p)\upsilon(N)=N(1-1/q)(1-1/p)υ(N)=N(11/q)(11/p)

  2. 放在N的全部质因子上的 欧拉函数 就为
    υ(N)=N(1−1/p1)(1−1/p2)...(1−1/pi)\upsilon(N)=N(1-1/p_1)(1-1/p_2)...(1-1/p_i)υ(N)=N(11/p1)(11/p2)...(11/pi)

//试除法分解质因数来求 欧拉函数值
#include <iostream>
#include <cmath>
using namespace std;
int main() {
	int n;
	cin >> n;
	int ans = n;
	for (int i=2; i<=sqrt(n); i++) {
		if (n%i == 0) {
			ans = ans / i * (i-1);
			while (n%i==0) n /= i; 
		}
	}
	if (n>1) ans = ans / n * (n-1);
	cout << ans; 
	return 0;
}

算数基本定理:
N=p1c1∗p2c2∗p3c3∗……∗piciN = p_1^{c_1} * p_2^{c_2}*p_3^{c_3}*……*p_i^{c_i}N=p1c1p2c2p3c3pici ,其中p1,p2,..都是互质的
那么: υ(a∗b)=υ(a)∗υ(b)\upsilon(a*b) = \upsilon(a)*\upsilon(b)υ(ab)=υ(a)υ(b) (从欧拉函数推导过程i=2得来)

满足上述条件时, υ\upsilonυ 也叫积性函数

延伸出来的欧拉函数的2个性质:(如果dn的约数,记作d|n)

  1. p为质数,p|np2∣np^2|np2n , 得 p∣(n/p)p|(n/p)p(n/p)
    带入欧拉函数然后得到 υ(n)=p∗υ(n/p)\upsilon(n) = p*\upsilon(n/p)υ(n)=pυ(n/p)
    υ(n)=n∗(1−p1)(1−p2)...\upsilon(n)=n*(1-p_1)(1-p_2)...υ(n)=n(1p1)(1p2)...
    υ(n/p)=n/p∗(1−p1)(1−p2)...\upsilon(n/p)=n/p*(1-p_1)(1-p_2)...υ(n/p)=n/p(1p1)(1p2)... ,然后相除
  2. p为质数,p|np2!∣np^2 !|np2!n ,( p2p^2p2不是n的约数),此时pn/p互质,由基本性质得 υ(n)=υ(n/p)∗υ(p)\upsilon(n)=\upsilon(n/p)*\upsilon(p)υ(n)=υ(n/p)υ(p) 以为p是个质数,1~p都与它互质,则 υ(p)=p−1\upsilon(p)=p-1υ(p)=p1 ,
    υ(n)=(p−1)∗υ(n/p)\upsilon(n)=(p-1)*\upsilon(n/p)υ(n)=(p1)υ(n/p)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值