poj2407欧拉函数模板

博客详细介绍了欧拉函数的基本定理,包括其性质和计算方法,如直接求解、筛法和递推法,并提供了POJ 2407问题的解题思路,强调了在算法中如何应用欧拉函数。
摘要由CSDN通过智能技术生成

第一次接触欧拉函数,phi(x)为小于等于x且与x互质的数的个数……先介绍一些基本定理

1.定义在所有正整数上的函数成为算数函数。

2.一个算术函数f,如果对于两个互素整数m,n有f(nm)=f(n)*f(m)则称f为积性函数。如果对于任意两个正整数mn有f(nm)=f(n)*f(m)则称f为完全积性函数。

3.如果f是一个积性函数,则对于正整数n=p1^a1*p2^a2……(pi为素数),则f(n)=f(p1^a1)*f(p2^a2)……

4.若p为素数,则phi(p)=p-1.同时,若phi(p)=p-1,则p为素数

5若p为素数,则phi(p^a)=p^a-p^(a-1),简单证明:p^a只有p的倍数的因子为p^(a-1)个。

6.n=p1^a1*p2^a2……则phi(n)=n*(1-1/p1)*(1-1/p2)……该式可由5推出

7.当n为奇数时,有phi(2n)=phi(n)。

8.设n为一大于2的正整数,则phi(n)为偶数


介绍几种求欧拉函数的方法

(1)直接求解,从1遍历到根号n,找出素因子,套入公式,接着将该素因子全部除去,最后判断n是否本身就是素数。

(2)筛法求出素数表,除去筛的时间,其复杂度变为o(x),x为小于n的素数个数

(3)递推求欧拉函数,适合于多次运用事先打表的情况,复杂度为o(nlnn)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值