把筛法改一改就行了 最先到的就是最小质素因子
#include <bits/stdc++.h>
#define ll long long
using namespace std;
int const N=3e7+5;
ll p[N],ans,n;
int main()
{
cin>>n;
for(int i=2;i<=n;i++)
{
if(!p[i])
{
ans+=i;
for(int j=i*2;j<=n;j+=i)
if(!p[j]) p[j]=1,ans+=i;
}
}
cout<<ans<<endl;
return 0;
}

京公网安备 11010502036488号