欧拉筛及欧拉函数


为什么要 \(j\) 指针在最小质因子时退出呢,因为一个数只能被其最小质因子筛去,否则就会用不是最小质因子向后筛。例如\(15\times3=45\)此时退出,要不然就会筛\(15\times5=75\),而\(75=3\times25\)不应被5筛掉。







例题2

共有T次询问。如果一个正整数x小于N,而且x与N不互质,求所有x的和。
\(n=p_1p_2p_3\)
\(Ans=(1+2+...+n)-(p_1+2p_1+...+n)-(p_2+...+n)+(p_1p_2+...+n)\)
\(=\dfrac{(1+n)\times n}{2}-\dfrac{(p_1+n)\times \dfrac{n}{p_1}}{2}-\dfrac{(p_2+n)\times \dfrac{n}{p_2}}{2}+\dfrac{(p_1p_2+n)\times \dfrac{n}{p_1p_2}}{2}\)
\(=\dfrac{n}{2}\times(1+n-(1+\dfrac{n}{p1})-(1+\dfrac{n}{p_2})+(1+\dfrac{n}{p_1p_2}))\)
\(=\dfrac{n}{2}\times(n-\dfrac{n}{p_1}-\dfrac{n}{p_2}+\dfrac{n}{p_1p_2})\)
\(=\dfrac{n}{2}\times \phi(n)\)

由于\(n\)很大,所以使用\(\sqrt n\)求欧拉函数。
时间复杂度\(O(T\sqrt{n})\)

posted @ 2022-08-13 13:34  s1monG  阅读(45)  评论(0)    收藏  举报