把筛法改一改就行了 最先到的就是最小质素因子

#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;
}