Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define gc c=getchar()
- #define r(x) read(x)
- #define ll long long
- template<typename T>
- inline void read(T&x){
- x=0;T k=1;char gc;
- while(!isdigit(c)){if(c=='-')k=-1;gc;}
- while(isdigit(c)){x=x*10+c-'0';gc;}x*=k;
- }
- const int N=1e6+7;
- bool mark[N];
- int prime[N],tot;
- bool vis[N];
- int main(){
- // freopen(".in","r",stdin);
- // freopen(".out","w",stdout);
- ll s,e,k;r(s),r(e),r(k);
- int n=e-s+1;
- ll ans=0;
- for(int i=2,cnt=0;cnt<k;++i){
- if(!mark[i]){
- prime[++tot]=i;
- for(int x=(i-s%i)%i;cnt<k&&x<n;x+=i){
- if(!vis[x]){
- vis[x]=1;
- ans+=i;
- ++cnt;
- }
- }
- }
- for(int j=1,tmp;j<tot&&(tmp=i*prime[j])<N;++j){
- mark[tmp]=1;
- if(i%prime[j]==0)break;
- }
- }
- printf("%lld\n",ans);
- return 0;
- }
RAW Paste Data