Napisz program znajdujący liczby pierwsze z przedziału [2;n] metodą sita Eratostenesa. Mam napisać ten program na podstawie innego który już mam. Wyznacza on liczby pierwsze do 100.

Napisz Program Znajdujący Liczby Pierwsze Z Przedziału 2n Metodą Sita Eratostenesa Mam Napisać Ten Program Na Podstawie Innego Który Już Mam Wyznacza On Liczby class=

Odpowiedź :

Odpowiedź:

#include <iostream>

using namespace std;

void SitoEratostenesa(bool Pierwsze[], int N)

{

   Pierwsze[2]=true;

   for (int i=3;i<N;i++)

       Pierwsze[i]=(i%2==1);

   int d=3;

   while (d*d<N)

   {

       for (int i=d;i*d<N;i+=2)

           Pierwsze[i*d]=false;

       do

           d+=2;

       while (!Pierwsze[d]);

   }

}

int main()

{

int N;

cout << "Podaj liczbe do ktorej mamy wypisywac liczby pierwsze" << endl;

cin >> N;

 

   bool Pierwsze[N];

   SitoEratostenesa(Pierwsze, N);

   for (int i=2;i<N;i++)

       if (Pierwsze[i]) cout<<i<<" ";

return 0;

}

Wyjaśnienie:

Jak coś niejasne to pisz :)