欧拉函数的意义
欧拉函数,表示不小于一个数并于这个数互质的数的个数
写作
[varphi(n)
]
比如
[varphi(6)=2(1,5)
]
[varphi(8)=4(1,3,5,7)
]
[dots
]
欧拉函数的求法
那么欧拉函数怎么求呢?
显然可以枚举数,互质的数的个数就是最终的答案
是不是太蠢了?
我们需要高级一点的求法
直接求互质的数的个数有点难
我们不要直接单刀直入,尝试拐一下弯
与之互质的数的个数不就是总共的个数-不互质的个数?
不互质的数有啥特征?
[gcd(a,b)
e 1
]
那么这样的数怎么求呢?
[varphi(p^k)=p^k(总数)-p^{k-1}(与之不互质的数的个数)(p为质数)
]
欧拉函数是积性函数,那么我们对于n质因数分解,不就行了吗?
化简为
[n=p_1^{a_1}p_2^{a_2}p_3^{a_3}dots*p_k^{a_k}
]
[varphi(n)=prod_{i=1}^k(p_i^{a_i}-p_i^{a_i-1})
]
[varphi(n)=frac{nprod_{i=1}^k(p_i^{a_i}-p_i^{a_i-1})}{n}
]
[varphi(n)=frac{nprod_{i=1}^k(p_i^{a_i}-p_i^{a_i-1})}{p_1^{a_1}p_2^{a_2}p_3^{a_3}dots*p_k^{a_k}}
]
[varphi(n)=nprod_{i=1}^k(1-frac{1}{p_i})
]