Advertisement
bappi2097

B - Primes

Jul 5th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int prime[300000],nprime;
  4. int mark[10000007];
  5. void sieve(int n)
  6. {
  7.     int i,j,limit=sqrt(n)+2;
  8.     mark[1]=1;
  9.     prime[nprime++]=2;
  10.     for(i=4; i<=n; i+=2)mark[i]=1;
  11.     for(i=3; i<=n; i+=2)
  12.     {
  13.         if(!mark[i])
  14.         {
  15.             prime[nprime++]=i;
  16.             if(i<=limit)
  17.             {
  18.                 for(j=i*i; j<=n; j+=i*2)
  19.                 {
  20.                     mark[j]=1;
  21.                 }
  22.             }
  23.         }
  24.     }
  25. }
  26. int main()
  27. {
  28.     int n;
  29.     cin>>n;
  30.     sieve(n);
  31.     for(int i=0,j=nprime-2; i<(nprime-1)/2 && j>=(nprime-1)/2; i++,j--)
  32.     {
  33.         if(prime[i]+prime[j]==n)
  34.         {
  35.             cout<<prime[i]<<' '<<prime[j]<<endl;
  36.             return 0;
  37.         }
  38.     }
  39.     cout<<-1<<endl;
  40.     return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement