欧拉线性筛. 对于它的复杂度的计算大概思考了很久. procedure build_prime; var i,j:longint; begin fillchar(vis,sizeof(vis),true); prime[]:=; to maxn do begin if vis[i] then begin inc(prime[]); prime[prime[]]:=i; end; to prime[] do begin if i*prime[j]>maxn then break; vis[i*pr…
按照积性函数的定义筛一下这个积性函数即可. #include <cstdio> #include <algorithm> #define N 1000004 #define setIO(s) freopen(s".in","r",stdin) using namespace std; int tot; int f[N],prime[N],vis[N],sum[N]; int main() { //setIO("input"…
枚举约数,加上有这个约数的数个数 #include<iostream> #include<cstdio> using namespace std; const int N=1000005; int n; long long ans; int main() { scanf("%d",&n); for(int i=1;i<=n;i++) ans+=n/i; printf("%lld\n",ans); return 0; }…
题意:记$f(n)$为$n$的约数个数,求$\sum_{i=1}^n f(i)$,$n \leq 10^6$. 我也不知道为什么我要来做这个- 直接枚举每个数会是哪些数的约数-复杂度$O(n log n)$ #include<cstdio> typedef long long lint; int n;lint ans; int main() { scanf("%d",&n); for(register int i=1;i<=n;i++) for(registe…
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1968 直接计算每个因子的贡献就可以了. $Ans=\sum_{i=1}^n[\frac{n}{i}]$ #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; int main(){ int N; scanf("%…
Description The ministers of the cabinet were quite upset by the message from the Chief of Security stating that they would all have to change the four-digit room numbers on their offices. — It is a matter of security to change such things every now…
题目链接 题意 : 定义不能被平方数整除的数为 Square-free Number 定义 F(i) = 有几对不同的 a 和 b 使得 i = a * b 且 a .b 都是 Square-free 给出一个 N 求 分析 : 首先 Square-free 有一个性质 就是用唯一分解定理将 Square-free Number 分解后 素因数的指数都是 1 那么对于 a.b 是 Square-free Number 相乘 a * b 得出的 i 其不会有素因子的指数超过 2 然后你要熟悉欧拉筛…