Sum of a Function
题解:求区间内规定区间所有数的最小素因子的和,遍历一遍数据,再接一层循环(2,281)即可。
#include<bits/stdc++.h>
#define LL long long
using namespace std;
const int maxn=1e6+10;
LL a[maxn],idx;
int main(){
LL s,e,k,ans=0;
cin>>s>>e>>k;
for(LL i=s;i<=e;i++){
LL tmp=i;
for(int j=2;j<=281;j++){
if(tmp%j==0){//只要可以整除即可,当时没明白过来这一点。
a[idx++]=j;
break;
}
}
}
sort(a,a+idx);
for(int i=0;i<k;i++){
ans+=a[i];
}
cout<<ans<<endl;
return 0;
}
另外的做法还有欧拉筛和区间筛的综合运用。