Beispiellösung

Content

#include <iostream>

int main() {
   std::size_t N;
   if (std::cin >> N && N > 1) {
      bool* prime = new bool[N+1]; /* das Sieb */
      for (std::size_t n = 2; n <= N; ++n) {
	 prime[n] = true; /* Annahme zu Beginn */
      }
      for (std::size_t n = 2; n <= N; ++n) {
	 if (prime[n]) {
	    std::cout << n << std::endl;
	    if (n * n <= N) {
	       for (std::size_t k = n*n; k <= N; k += n) {
		  prime[k] = false;
	       }
	    }
	 }
      }
   }
}