fork download
  1. #include <vector>
  2. #include <iostream>
  3.  
  4. int main()
  5. {
  6. using namespace std;
  7.  
  8. unsigned const N = 1000;
  9.  
  10. vector<pair<int, bool> > vec(N - 1); // Platz. Erster Wert ist die Zahl, der zweite bool-Wert gibt an ob diese Zahl noch eine Primzahl sein könnte.
  11.  
  12. for( unsigned ct = 0; ct < vec.size(); ++ct )
  13. vec[ct] = make_pair(ct + 2, true);
  14.  
  15. for( unsigned ct = 0; ct < vec.size(); ++ct )
  16. if( vec[ct].second )
  17. {
  18. int value = vec[ct].first;
  19.  
  20. for( unsigned multiple = value*value; multiple < vec.size() + 2; multiple += value )
  21. vec[multiple - 2].second = false;
  22. }
  23.  
  24. /// Ausgabe:
  25. for( unsigned ct = 0; ct < vec.size(); ++ct )
  26. if( vec[ct].second )
  27. cout << vec[ct].first << ", ";
  28. }
Success #stdin #stdout 0s 2816KB
stdin
Standard input is empty
stdout
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997,