杜教筛--51nod1239 欧拉函数之和】的更多相关文章

求$\sum_{i=1}^{n}\varphi (i)$,$n\leqslant 1e10$. 这里先把杜教筛的一般套路贴一下: 要求$S(n)=\sum_{i=1}^{n}f(i)$,而现在有一数论函数$g(i)$,$g(i)$的前缀和很无脑,且$f$和$g$的狄利克雷卷积的前缀和很无脑(太巧了吧..),那么由 $\sum_{i=1}^{n}\sum_{d|i}f(d)g(\frac{i}{d})$ 闪一句,常用套路:设$i=kd$,转而枚举$k$. $=\sum_{k=1}^{n}g(k)\…
我们考虑利用\(\sum\limits_{d|n}\varphi(d)=n\)这一性质来处理这个问题 设\(f(n)=\sum\limits_{i=1}^{n}\varphi(i)\) 那么我们可以得到: \[ \begin{aligned} \sum\limits_{i=1}^{n}\sum\limits_{d|i}\varphi(d)&=\frac{n(n+1)}{2}\\ \end{aligned} \] 所以: \[ \sum\limits_{i=1}^{n}\sum\limits_{d…
跟1244差不多. //由于(x+1)没有先mod一下一直WA三个点我... //由于(x+1)没有先mod一下一直WA三个点我... #include<cstdio> #include<cstring> #include<cctype> #include<algorithm> using namespace std; #define rep(i,s,t) for(ll i=s;i<=t;i++) #define dwn(i,s,t) for(ll i…
题面 传送门 题解 话说--就一个杜教筛--刚才那道拿过来改几行就行了-- //minamoto #include<bits/stdc++.h> #define R register #define ll long long #define IT map<ll,int>::iterator #define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i) #define fd(i,a,b) for(R int i=a,I=b-1;i>I;--…
来自FallDream的博客,未经允许,请勿转载,谢谢 --------------------------------------------- 给定n,求$S(n)=\sum_{i=1}^{n}\varphi(i)$  n<=$10^{10}$ 跟求莫比乌斯函数前缀和一样的做法,也可以推出$S(n)=\frac{n*(n+1)}{2}-\sum_{i=2}^{n}S(i)$,具体推法可以戳这里 另外,我们还可以从gcd入手. 数对$\left(x,y\right),x\leqslant y$…
1239 欧拉函数之和 基准时间限制:3 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 对正整数n,欧拉函数是小于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler's totient function.φ函数.欧拉商数等.例如:φ(8) = 4(Phi(8) = 4),因为1,3,5,7均和8互质. S(n) = Phi(1) + Phi(2) + -- Phi(n),给出n,求S(n),例如:n = 5,S(n) = 1 +…
[51Nod 1244] - 莫比乌斯函数之和 求∑i=1Nμ(i)\sum_{i=1}^Nμ(i)∑i=1N​μ(i) 开推 ∑d∣nμ(d)=[n==1]\sum_{d|n}\mu(d)=[n==1]d∣n∑​μ(d)=[n==1] 移项 μ(d)=[n==1]−∑d∣n,d<nμ(d)∴S(N)=∑i=1Nμ(i)=∑i=1N([i==1]−∑d∣i,d<iμ(d))=1−∑i=1N∑d∣i,d<iμ(d)\mu(d)=[n==1]-\sum_{d|n,d<n}\mu(d)\…
题目链接: 1239:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1239 1244:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1244 杜教筛裸题,不过现在我也只会筛这俩前缀和... $$s(n)=\sum _{i=1}^{n}f(i)$$ 那么就有: $$\sum_{i=1}^{n}f(i)\lfloor \frac{n}{i} \…
[题目链接] https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1239 [题目大意] 计算欧拉函数的前缀和 [题解] 我们知道积性函数∑(phi(d))=n(d|n) 所以∑∑(miu(d))=n*(n+1)/2(d|i){i=1}^{n} 因此我们得到F(n)=n*(n+1)/2-∑F(n/d){d=2}^{n} 同时用hash记忆化phi函数的前缀和 [代码] #include <cstdio> #include…
[题意]给定n,求Σφ(i),n<=10^10. [算法]杜教筛 [题解] 定义$s(n)=\sum_{i=1}^{n}\varphi(i)$ 杜教筛$\sum_{i=1}^{n}(\varphi *I)(i)=\sum_{i=1}^{n}\sum_{d|i}\varphi(d)=\sum_{i=1}^{n}\sum_{d=1}^{\frac{n}{i}}\varphi(d)$ 根据$id=\varphi*I$,$\sum_{i=1}^{n}(\varphi*I)(i)=\frac{i(i+1)…