题目
题解
欧拉筛模板。
没啥好说的。
如果还不会,麻溜去学,必备知识。
代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 2e6+10;
ll ans;
int n, cnt, prime[N], vis[N];
int main()
{
cin>>n;
for(int i = 2;i <= n;i ++) {
if(!vis[i]) prime[++cnt] = i, ans += i; // 就比欧拉筛模板多了个累加素数
for(int j = 1;j <= cnt;j ++) {
if(i*prime[j] > n) break;
vis[i*prime[j]] = 1;
if(i%prime[j] == 0) break;
}
}
printf("%lld", ans);
return 0;
}