Advertisement
Guest User

Untitled

a guest
May 2nd, 2016
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.93 KB | None | 0 0
  1. #include <iostream>
  2. #include <deque>
  3.  
  4. typedef std::deque<unsigned> intlist;
  5. typedef std::deque<intlist> listlist;
  6.  
  7. void my_insert( listlist & factors, unsigned factor ) {
  8. if( factor >= factors.size() ) factors.resize( factor+1 );
  9. factors[ factor ].push_back( factor );
  10. }
  11.  
  12. int main() {
  13. intlist primes;
  14. listlist factors;
  15. unsigned a_prime = 3, a_square_prime = 9, maybe_prime = 3;
  16. factors.resize(3);
  17. std::cout << "2 3 ";
  18.  
  19. while( maybe_prime <= 999 ) {
  20. intlist &f = factors.front();
  21. maybe_prime += 2;
  22. if( !f.empty() ) {
  23. intlist::iterator i = f.end();
  24. while( i != f.begin() )
  25. my_insert( factors, *(--i) );
  26. } else if( maybe_prime < a_square_prime ) {
  27. std::cout << maybe_prime << " ";
  28. primes.push_back( maybe_prime );
  29. } else {
  30. my_insert( factors, a_prime );
  31. a_prime = primes.front();
  32. primes.pop_front();
  33. a_square_prime = a_prime * a_prime;
  34. }
  35. factors.pop_front();
  36. }
  37.  
  38. std::cout << std::endl;
  39. return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement