View difference between Paste ID: DzUpdXPk and MkB4BQLm
SHOW: | | - or go back to the newest paste.
1
#include <cmath>
2
#include <iostream>
3
#include <list>
4
#include <cstdlib>
5
6
using namespace std;
7
8
9
class PrimesBag : public list <int>
10
{
11
public:
12
  bool hasDivisor (int x) {
13
    double bound = sqrt (x);
14
15
    for (PrimesBag::iterator i = this->begin (); 
16
	 (i != this->end ()) && (*i <= bound); ++i) {
17
      if (x % *i == 0) return true;
18
    }
19
    
20
    return false;
21
  }
22
};
23
24
25
int main (int argc, char* argv[])
26
{
27
  PrimesBag bag;
28
  
29
  int top = atoi (argv[1]);
30
31
  for (int i = 2; i <= top; i++) {
32
    if (!bag.hasDivisor (i)) bag.push_back (i);
33
    
34
  }
35
36
  for (PrimesBag::iterator i = bag.begin (); i != bag.end (); ++i) {
37
    cout << *i << endl;
38
  }
39
}