Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- using ll= long long;
- #define pb push_back
- vector<ll>prime,v;
- bool mark[100000009];
- void sieve()
- {
- ll n=100000000;
- prime.pb(2);
- mark[0]=1;
- mark[1]=1;
- for(ll i=4; i<=n; i+=2)
- mark[i]=1;
- for(ll i=3; i<=n; i+=2)
- {
- if(!mark[i])
- {
- prime.pb(i);
- if(i*i<=n)
- {
- for(ll j=i*i; j<=n; j+=i*2)
- mark[j]=1;
- }
- }
- }
- }
- int main()
- {
- sieve();
- ll n,x,i,j;
- while(cin>>n)
- {
- ll ans=1e9,ans1,ans2;
- for(i=0; i<=n; i++)
- {
- if(mark[i]==0 && mark[n-i]==0 && i!=(n-i))
- {
- ll p=abs((n-i)-i);
- if(p<ans)
- {
- ans=p;
- ans1=min(n-i,i);
- ans2=max(n-i,i);
- }
- }
- }
- if(ans!=1e9)
- printf("%lld is the sum of %lld and %lld.\n",n,ans1,ans2);
- else
- printf("%lld is not the sum of two primes!\n",n);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement