document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. #define ARR_LENGTH 1002
  5.  
  6. int main()
  7. {
  8.     int number[ARR_LENGTH] = {-1,1};  
  9.     // 1 means 0 is the 1st prime, 0 means have not handle, -1 means not prime
  10.     //int count = 1;
  11.    
  12.     for(int i = 2, primeIndex=2 ; i <= ARR_LENGTH  ; i++)
  13.     {
  14.         if(number[i]==0){
  15.             number[i]=primeIndex;
  16.             for(int j=2*i;j<ARR_LENGTH;j+=i){
  17.                 number[j]=-1;  
  18.             }
  19.             primeIndex++;
  20.         }
  21.     }
  22.  
  23.     /*   //for DEBUG
  24.     for(int i=0;i<100;i++){
  25.         cout<<number[i]<<"   "<<i<<endl;
  26.     }
  27.     system("pause");*/
  28.  
  29.  
  30.    
  31.     int N, C;
  32.     while( cin>>N>>C)
  33.     {
  34.        int begin, end;  
  35.         int primeCount;   // primeCount =i means ith prime
  36.         for(int i=N;i>=0;i--){
  37.             if(number[i]>0){
  38.                 primeCount=number[i];
  39.                 break;
  40.             }
  41.         }
  42.  
  43.         if(primeCount%2==0)
  44.         {
  45.            begin = primeCount/2 - C + 1;
  46.             if( begin < 1 ){
  47.                 begin = 1;
  48.             }
  49.            end = primeCount/2 + C;
  50.            if( end > primeCount ){
  51.                 end = primeCount;
  52.            }
  53.         }
  54.         else
  55.         {
  56.             begin = (primeCount/2 + 1) - C + 1;  
  57.             if( begin < 1 )
  58.                 begin = 1;
  59.             end = (primeCount/2 + 1) + C -1; //notice: (C*2)-1
  60.             if( end > primeCount )
  61.                 end = primeCount;
  62.         }
  63.         cout<<N<<" "<<C<<":";
  64.        
  65.         for(int i = 1 ; i <= N ; i++ )
  66.        {
  67.            if(number[i]>=begin && number[i]<=end)
  68.            {
  69.                cout<<" "<<i;
  70.            }
  71.        }
  72.        cout<<endl<<endl;
  73.     }
  74.     return 0;
  75. }
');