题意:图片说明 表示每个数最小的质因子
比如f(10)=2;f(39)=3
然后求图片说明
题解:素筛
2 3 4 5 6 7 8 9 10 11.....
2 3 2 5 2 7 2 3 2 11......
如果当前数是某一个质数的倍数,那么这个数不是质数,然后素筛是从小到大筛的,所以直接符合题意
另外:素筛的复杂的不是图片说明 ,大致是图片说明 级别的

#include<bits/stdc++.h>
using namespace std;
long long n,cnt,sum;
int a[34000000];
int p[30040000];
void su()
{
    for(int i=2;i<=n;i++)
    {
        if(!a[i])
        {
            sum+=i;
            p[cnt++]=i;
        }
        for(int j=0;j<cnt&&i*p[j]<=n;j++)
        {
            a[i*p[j]]=1;
            sum+=p[j];
            if(i%p[j]==0)break;
        }
    }
cout<<sum;
}
int main()
{
  scanf("%lld",&n);
    su();
}