题意:
求1~n中每个数的最小质因数的和。
思路:
素数筛即可,把每个数的第一个质因数加到答案当中。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[30000005];
int main()
{
ll n;cin>>n;
ll sum=0;
for(ll i=2; i<=n; i++){
if(!a[i]){
sum+=i;
for(ll j=i*i; j<=n; j+=i){
if(!a[j]) a[j]=1,sum+=i;
}
}
}
cout<<sum;
return 0;
}
京公网安备 11010502036488号