Don't like ads? PRO users don't see any ads ;-)
Guest

SHAHEEN

By: skyhigh_bd on Aug 4th, 2012  |  syntax: C++  |  size: 2.62 KB  |  hits: 23  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. /*
  2. Author : S.M.SHAHEEN SHA
  3. Uva    : 10650 ( Determinate Prime )
  4. */
  5. #include<algorithm>
  6. #include<cstdio>
  7. #include<sstream>
  8. #include<algorithm>
  9. #include<cstdio>
  10. #include<sstream>
  11. #include<cstdlib>
  12. #include<cctype>
  13. #include<cmath>
  14. #include<set>
  15. #include<queue>
  16. #include<stack>
  17. #include<list>
  18. #include<iostream>
  19. #include<fstream>
  20. #include<numeric>
  21. #include<string>
  22. #include<vector>
  23. #include<cstring>
  24. #include<map>
  25. #include<iterator>
  26. #include<deque>
  27.  
  28. // Macro
  29. #define all(a) a.begin(),a.end() // all elements of a container
  30. #define ini1(n) scanf("%d",&n) // input 1 integer
  31. #define ini2(n1,n2) scanf("%d%d",&n1,&n2)// input 2 integer
  32. #define ini3(n1,n2,n3) scanf("%d%d%d",&n1,&n2,&n3)//input 3 integer
  33. #define la(a,i)    for(i=0;i<a;i++) // loop from 0 upto n-1
  34. #define laa(a,i)   for(i=1;i<=a;i++)// loop from 1 uoto n
  35. #define lab(a,b,i) for(i=a;i<=b;i++)// loop from a upto b
  36. #define pb push_back // push value
  37. #define pi acos(-1.0) // value of pi
  38. #define clr(a) memset(a,0,sizeof(a))// assign 0 value to all elements of arr
  39.  
  40. #define M 32099
  41.  
  42. using namespace std;
  43.  
  44. vector<int>prime;
  45.  
  46. vector<int>res[200];
  47.  
  48. bool isprime[M];
  49.  
  50. void sieve()
  51. {
  52.     int root  =  (int)sqrt(M);
  53.  
  54.     int i,j;
  55.  
  56.     //for(i=0; i<=M; i++) isprime[i] = true;
  57.  
  58.     for(i=2; i<=root; i++)
  59.     {
  60.         if(!isprime[i])
  61.             for(j=i+i; j<=M; j+=i)
  62.                 isprime[j] = true;
  63.     }
  64.  
  65.     //prime.clear();
  66.  
  67.     prime.push_back(2);
  68.  
  69.     for(i=3; i<=M; i+=2) if(!isprime[i]) prime.push_back(i);
  70.  
  71.   // cout << prime.size() << endl;
  72. }
  73.  
  74.  
  75. int main()
  76. {
  77.     int x,y,i,j=0,k,d1,a,d2,d3;
  78.  
  79.     int diff[16055];
  80.  
  81.     // freopen("input 10650.txt","r",stdin);
  82.     // freopen("output 10650.txt","w",stdout);
  83.  
  84.  
  85.     sieve();
  86.  
  87.     for(i=0;i<prime.size()-1;i++) diff[i] = prime[i+1]-prime[i];
  88.  
  89.     for( i=0; i < prime.size()-4; i++ )
  90.     {
  91.  
  92.         if( diff[i]==diff[i+1] )
  93.         {
  94.             res[j].push_back(prime[i]);
  95.             res[j].push_back(prime[i+1]);
  96.             res[j].push_back(prime[i+2]);
  97.  
  98.             if( diff[i+1]==diff[i+2])
  99.             {
  100.                 res[j].push_back(prime[i+3]);
  101.                 i++;
  102.             }
  103.  
  104.             j++;
  105.             i+=2;
  106.         }
  107.     }
  108.  
  109.  
  110.     while( scanf("%d %d",&x,&y)==2 && (x || y) )
  111.     {
  112.         if(x>y) swap(x,y);
  113.  
  114.         for(i=0; i<j; i++) if(res[i][0]>=x) break;
  115.  
  116.         for( ; i<j && res[i][res[i].size()-1] <= y; i++ )
  117.         {
  118.             if(res[i].size()==3) printf("%d %d %d\n",res[i][0],res[i][1],res[i][2]);
  119.             else printf("%d %d %d %d\n",res[i][0],res[i][1],res[i][2],res[i][3]);
  120.         }
  121.     }
  122.  
  123.     return 0;
  124. }