Advertisement
Farjana_akter

Untitled

Feb 14th, 2020
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.77 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. typedef long long int ll;
  4. #define mxn 10000007
  5.  
  6. bool mark[mxn];
  7. vector<ll>isprime;
  8. void sieve()
  9. {
  10. ll i,j,k;
  11. mark[0]=true;
  12. mark[1]=true;
  13. for(i=2;i*i<=mxn;i++)
  14. {
  15. if(mark[i]==false)
  16. {
  17. for(j=i*i;j<=mxn;j+=i)
  18. {
  19. mark[j]=true;
  20. }
  21. }
  22. }
  23. //isprime.push_back(2);
  24. for(i=2;i<=mxn;i++)
  25. {
  26. if(mark[i]==false)
  27. isprime.push_back(i);
  28. }
  29. }
  30.  
  31.  
  32.  
  33. int main()
  34. {
  35. sieve();
  36. ll n,i,j,k,l;
  37. while(cin>>n)
  38. {
  39. vector<ll>res;
  40. if(n<8)
  41. {
  42. cout<<"impossible"<<endl;
  43. continue;
  44. }
  45. else
  46. {
  47. if(n%2==0)
  48. {
  49. res.push_back(2);
  50. res.push_back(2);
  51. n-=4;
  52. }
  53. else
  54. {
  55. res.push_back(2);
  56. res.push_back(3);
  57. n-=5;
  58. }
  59. int flag=0;
  60. for(i=0;isprime[i]<n;i++)
  61. {
  62. ll a=isprime[i];
  63. ll b=n-isprime[i];
  64. if(mark[b]==false)
  65. {
  66. // cout<<"a "<<a<<" b "<<b<<endl;
  67. res.push_back(a);
  68. res.push_back(b);
  69. flag=1;
  70. break;
  71. }
  72. }
  73. if(flag==0)
  74. {
  75. cout<<"impossible"<<endl;
  76. }
  77. else
  78. {
  79. for(i=0;i<res.size();i++)
  80. {
  81. cout<<res[i]<<" ";
  82. }
  83. cout<<endl;
  84. }
  85. }
  86. }
  87. return 0;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement