Advertisement
Nattack

Untitled

Oct 18th, 2011
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.80 KB | None | 0 0
  1. #include <iostream>
  2. #include <sstream>
  3. #include <string>
  4. #include <vector>
  5. #include <list>
  6.  
  7. using namespace std;
  8.  
  9. int main () {
  10.     vector<long> numlist(1,2);
  11.     vector<long> foundlist;
  12.     list<string> cmplist;
  13.     string input;
  14.     long begin, end;
  15.     int imax;
  16.     bool prime;
  17.     numlist.push_back(3);
  18.  
  19.     getline(cin, input);
  20.     istringstream iss(input, istringstream::in);
  21.     iss >> imax;
  22.     if (imax > 10) imax = 10;
  23.     for (int i = 0; i < imax; i++) {
  24.         getline(cin, input);
  25.         cmplist.push_back(input);
  26.     }
  27.  
  28.     while (!cmplist.empty())
  29.     {
  30.         begin = 0, end = 0;
  31.         istringstream iss(cmplist.front(), istringstream::in);
  32.         iss >> begin;
  33.         iss >> end;
  34.  
  35.         if (begin >= 1 && begin < end && end <= 1000000000L && (end-begin <= 100000))
  36.         {
  37.             // find primes here
  38.             if (numlist.back() < end)
  39.                 for(long i = numlist.back(); i < end+1; i+=2)
  40.                 {
  41.                     prime = true;
  42.                     for (int j = 0; j < numlist.size(); j++)
  43.                         if (!(i % numlist.at(j)))
  44.                         {
  45.                             prime = false;
  46.                             break;
  47.                         }
  48.                         if (prime)
  49.                             numlist.push_back(i);
  50.                 }
  51.             // display already found primes here
  52.             for (int i = 0; i < numlist.size() ; i++)
  53.             {
  54.                 if (numlist.at(i) >= begin && numlist.at(i) <= end)
  55.                     cout << numlist.at(i) << endl;
  56.                 else if (numlist.at(i) > end)
  57.                     break;
  58.             }
  59.             cout << endl;
  60.         }
  61.         else
  62.             cout << endl;
  63.         cmplist.pop_front();
  64.     }
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement