Advertisement
Misbah_Uddin_Tareq

Uva-10311

Dec 9th, 2019
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. using ll= long long;
  4. #define pb push_back
  5.  
  6. vector<ll>prime,v;
  7. bool mark[100000009];
  8.  
  9. void sieve()
  10. {
  11.     ll n=100000000;
  12.     prime.pb(2);
  13.     mark[0]=1;
  14.     mark[1]=1;
  15.  
  16.     for(ll i=4; i<=n; i+=2)
  17.         mark[i]=1;
  18.  
  19.     for(ll i=3; i<=n; i+=2)
  20.     {
  21.         if(!mark[i])
  22.         {
  23.             prime.pb(i);
  24.             if(i*i<=n)
  25.             {
  26.                 for(ll j=i*i; j<=n; j+=i*2)
  27.                     mark[j]=1;
  28.             }
  29.         }
  30.     }
  31. }
  32.  
  33. int main()
  34. {
  35.     sieve();
  36.     ll n,x,i,j;
  37.     while(cin>>n)
  38.     {
  39.         ll ans=1e9,ans1,ans2;
  40.         for(i=0; i<=n; i++)
  41.         {
  42.             if(mark[i]==0 && mark[n-i]==0 && i!=(n-i))
  43.             {
  44.                 ll p=abs((n-i)-i);
  45.                 if(p<ans)
  46.                 {
  47.                     ans=p;
  48.                     ans1=min(n-i,i);
  49.                     ans2=max(n-i,i);
  50.                 }
  51.             }
  52.         }
  53.  
  54.         if(ans!=1e9)
  55.             printf("%lld is the sum of %lld and %lld.\n",n,ans1,ans2);
  56.         else
  57.             printf("%lld is not the sum of two primes!\n",n);
  58.     }
  59.  
  60.  
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement