Forsaken喜欢数论
题解:欧拉筛和埃氏筛都可以过。
在筛素数的过程中,每个非素数都是用他最小的质数筛掉的,所以在筛的时候记录一下就可以了。
/*Keep on going Never give up*/ #pragma GCC optimize(3,"Ofast","inline") #include <bits/stdc++.h> const int maxn = 3e7+10; const int MaxN = 0x3f3f3f3f; const int MinN = 0xc0c0c00c; typedef long long ll; const int mod = 100000000; using namespace std; bool visited[maxn]; int main() { int n; ll ans=0; cin>>n; for(int i=2;i<=n;i++){ if(!visited[i]){ ans+=i; for(int j=i*i;j<=n;j+=i){ if(!visited[j]) visited[j]=true,ans+=i; } } } cout<<ans<<endl; return 0; }
题解 文章被收录于专栏
主要写一些题目的题解