Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- int prime[300000],nprime;
- int mark[10000007];
- void sieve(int n)
- {
- int i,j,limit=sqrt(n)+2;
- mark[1]=1;
- prime[nprime++]=2;
- for(i=4; i<=n; i+=2)mark[i]=1;
- for(i=3; i<=n; i+=2)
- {
- if(!mark[i])
- {
- prime[nprime++]=i;
- if(i<=limit)
- {
- for(j=i*i; j<=n; j+=i*2)
- {
- mark[j]=1;
- }
- }
- }
- }
- }
- int main()
- {
- int n;
- cin>>n;
- sieve(n);
- for(int i=0,j=nprime-2; i<(nprime-1)/2 && j>=(nprime-1)/2; i++,j--)
- {
- if(prime[i]+prime[j]==n)
- {
- cout<<prime[i]<<' '<<prime[j]<<endl;
- return 0;
- }
- }
- cout<<-1<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement