Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- bool mark[100005]= {false};
- long long int k,isprime[100005];
- //vector<long long int>store;
- void sieve()
- {
- long long int i,j,m;
- mark[0]=true;
- mark[1]=true;
- for(i=2; i*i<=100000; i++)
- {
- if(mark[i]==false)
- {
- for(j=i*i; j<=100000; j+=i)
- mark[j]=true;
- }
- }
- k=0;
- for(i=2; i<=100000; i++)
- {
- if(mark[i]==false)
- isprime[k++]=i;
- }
- //for(m=0;m<10;m++)
- // cout<<isprime[m]<<" ";
- }
- int main()
- {
- //freopen("in.txt","r",stdin);
- //freopen("out.txt","w",stdout);
- sieve();
- long long int x,y,i=0,m,j,cnt,dif;
- while(cin>>x>>y)
- {
- if(x==0 && y==0)
- break;
- if(x>y)
- swap(x,y);
- i=0;
- vector<long long int>store;
- while(1)
- {
- cnt=0;
- if(isprime[i]>y)
- break;
- dif=isprime[i+1]-isprime[i];
- j=i+1;
- store.push_back(isprime[i]);
- store.push_back(isprime[i+1]);
- // for(m=0; m<store.size(); m++)
- // cout<<store[m]<<" ";
- // cout<<endl;
- while(isprime[j+1]-isprime[j]==dif)
- {
- store.push_back(isprime[j+1]);
- cnt++;
- j++;
- }
- // cout<<"after while"<<endl;
- // for(m=0; m<store.size(); m++)
- // cout<<store[m]<<" ";
- // cout<<endl;
- if(!cnt)
- {
- i++;
- store.clear();
- }
- else
- {
- i=j;
- if(store[store.size()-1]>y)
- continue;
- if(store[0]<x)
- continue;
- for(m=0; m<store.size(); m++)
- {
- if(m) cout<<' ';
- cout<<store[m];
- }
- cout<<endl;
- store.clear();
- }
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement