第一次接触欧拉函数,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)