Advertisement
ismail5g

UVA-543

Jun 7th, 2018
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.32 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. /// Typedef
  5. typedef long long           ll;
  6. typedef unsigned long       ul;
  7. typedef unsigned long long  ull;
  8. typedef vector<int>         vi;
  9. typedef vector<vi>          vvi;
  10. typedef vector<ll>          vll;
  11. typedef pair<int,int>       pii;
  12. typedef pair<ll,ll>         pll;
  13. typedef vector< pii >       vii;
  14.  
  15. #define pb                  push_back
  16. #define ppb                 pop_back
  17. #define MP                  make_pair
  18. #define ff                  first
  19. #define ss                  second
  20. #define sf                  scanf
  21. #define pf                  printf
  22. #define SQR(x)              ((x)*(x))
  23. #define loop(i, y)          for(int i=0; i<int(y); i++)
  24. #define FOR(i, x, y)        for(int i=int(x); i<int(y); i++)
  25. #define ROF(i, x, y)        for(int i=int(x); i>=int(y); i--)
  26. #define ALL(c)              c.begin(), c.end()
  27. #define SZ(c)               int(c.size())
  28. #define CLR(x, y)           memset(x, y, sizeof(x))
  29. #define READ(f)             freopen(f, "r", stdin)
  30. #define WRITE(f)            freopen(f, "w", stdout)
  31. #define FastIO              ios_base::sync_with_stdio(false)
  32. #define tr(it, container)   for(auto it = container.begin(); it != container.end(); it++)
  33. #define sci(x)              scanf("%d", &x)
  34. #define scii(x, y)          scanf("%d %d", &x, &y)
  35. #define sciii(x, y, z)      scanf("%d %d %d", &x, &y, &z)
  36. #define scl(x)              scanf("%lld", &x)
  37. #define scll(x, y)          scanf("%lld %lld", &x, &y)
  38. #define sclll(x, y, z)      scanf("%lld %lld %lld", &x, &y, &z)
  39. #define bitCheck(N,in)      ((bool)(N&(1<<(in))))
  40. #define bitOff(N,in)        (N&(~(1LL<<(in))))
  41. #define bitOn(N,in)         (N|(1LL<<(in)))
  42. #define bitFlip(a,k)        (a^(1LL<<(k)))
  43. #define unq(v)              sort(all(v)), (v).erase(unique(all(v)),v.end())
  44. #define common(a,b)         sort(all(a)), sort(all(b)), a.erase(set_intersection(all(a),all(b),a.begin()),a.end())
  45. #define uncommon(a,b)       sort(all(a)), sort(all(b)), a.erase(set_symmetric_difference(all(a),all(b),a.begin()),a.end())
  46. #define dbg(x)              cout<<#x<<" = "<<x<<endl;
  47. // template <typename T> using orderset = tree <T, null_type, less<T>, rb_tree_tag,tree_order_statistics_node_update>;
  48. // *X.find_by_order(k) //returns the kth largest element.(0-based)
  49. // X.order_of_key(val) //returns the no. of values less than val
  50.  
  51. // uniform random generator -->
  52. // uniform_int_distribution<int> dist(0, 1);
  53. // default_random_engine gen;
  54.  
  55. template <class T> inline T bigMod(T p,T e,T M){ ll ret = 1; for(; e > 0; e >>= 1){ if(e & 1) ret = (ret * p) % M; p = (p * p) % M; } return (T) ret;}
  56. template <class T> inline T modInverse(T a,T M){return bigMod(a,M-2,M);}
  57. template <class T> inline T gcd(T a,T b){if(b==0)return a;return gcd(b,a%b);}
  58. template <class T> inline T lcm(T a,T b) {a=abs(a);b=abs(b); return (a/gcd(a,b))*b;}
  59. template <class T> inline string int2String(T a){ostringstream str; str<<a; return str.str();}
  60. const int dr[] = { 0,  1,  0, -1,        -1,  1,  1, -1,     -2, -2,  2,  2, -1, -1,  1,  1};
  61. const int dc[] = { 1,  0, -1,  0,         1,  1, -1, -1,     -1,  1, -1,  1, -2,  2, -2,  2};
  62.  
  63.  
  64. /// Constants
  65. #define MAX                 10000007
  66. #define MOD                 1000000009
  67. #define base                1000000007
  68. #define eps                 1e-9
  69. #define INF                 1llu<<61    // 2,305,843,009,213,693,952
  70. #define inf                 1<<29       // 536,870,912
  71. #define PI                  acos(-1.0)  // 3.1415926535897932
  72.  
  73. int arr[1000002];
  74.  
  75. void sieve()
  76. {
  77.     long long i, j;
  78.     for(i=4; i<1000000; i+=2) arr[i]=1;
  79.     for(i=3; i<1000000; i+=2){
  80.         if(arr[i]==0){
  81.             for(j=i*i; j<1000000; j+=i+i){
  82.                 arr[j]=1;
  83.             }
  84.         }
  85.     }
  86. }
  87. int newarr[1000002];
  88.  
  89. int main()
  90. {
  91.     sieve();
  92.     int n, c, i, sum, m, k, l, p, j;
  93.     while(cin>>n)
  94.     {
  95.         if(!n)break;
  96.         j=l=0;
  97.         for(i=2; i<=n; i++){
  98.             if(arr[i]==0){
  99.                 newarr[j]=i;
  100.                 j++;
  101.             }
  102.         }
  103.         j=j-1;
  104.         m=newarr[j];
  105.         k=newarr[l];
  106.         sum=m+k;
  107.         while(sum!=n){
  108.             if(sum>n){
  109.                 j--;
  110.             }
  111.             m=newarr[j];
  112.             l++;
  113.             k=newarr[l];
  114.             sum=m+k;
  115.         }
  116.         cout<<n<<" = "<<k<<" + "<<m<<endl;
  117.     }
  118.     return 0;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement