Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long int ll;
- #define maxSz 10000007
- int mark[maxSz];
- vector<int> vec;
- vector<int>::iterator it1,it2;
- void sieve(int n)
- {
- int cnt=0;
- mark[1]=1;
- mark[2]=0;
- for(int i=4;i<=n;i+=2)mark[i]=1;
- for(int i=3;i*i<=n;i+=2)
- {
- if(!mark[i])
- {
- for(int j=i*i;j<=n;j+=i*2)
- {
- mark[j]=1;
- }
- }
- }
- for(int i=1;i<=maxSz;i++)if(!mark[i])vec.push_back(i);
- return;
- }
- int main()
- {
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- #ifndef ONLINE_JUDGE
- freopen("input.cpp","r",stdin);
- //freopen("output.cpp","w",stdout);
- #endif // ONLINE_JUDGE
- sieve(maxSz);
- int a,b;
- while(cin>>a>>b && a!=0 && b!=0)
- {
- int cnt=0;
- if(a%2==1)a++;
- if(b%2==1)b--;
- for(int i=a;i<=b;i+=2)
- {
- it1=upper_bound(vec.begin(),vec.end(),i);
- int in=distance(vec.begin(),it1)-1;
- for(int j=0,k=in;j<in/2 && k>in/2;j++,k--)if(vec[j]+vec[k]==i)cnt++;
- }
- cout<<cnt<<endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement