Documente Academic
Documente Profesional
Documente Cultură
ciur[i] = 0, dacă numărul i este nemarcat (cu alte cuvinte este prim);
ciur[i] = 1, dacă numărul i este marcat (cu alte cuvinte nu este prim).
Inițial, toate elementele vectorului vor fi egale cu 0. Vom avansa începând de la 2
până la limita noastră n,
iar când găsim un număr nemarcat (prim), îi vom marca toți multiplii săi.
Pentru n=50 numerele nemarcate sunt numerele prime: 2, 3, 5, 7, 11, 13, 17, 19, 23,
29, 31, 37, 41, 43, 47.
#include <iostream>
int main()
{
for(int i = 2; i <= 1000; i++)
{
//Am găsit un număr nemarcat (prim)
if(ciur[i] == 0)
{
//Marcăm multiplii lui i
for(int j = 2 * i; j <= 1000; j += i) {
ciur[j] = 1;
}
}
}