Sunteți pe pagina 1din 2

Ciurul lui Eratostene

varianta 1
#include<iostream> for(i=2;i<=n;i++)
#include<fstream> { prim=true;
// #include<bits/stdc++.h> for (int divz=2;divz*divz<=i;divz++)
using namespace std; {if(i%divz==0)
{
//ciurul lui Eratostene1 prim=false;
int main() break;
{ }
int n,i; }
bool prim=true; if(prim) cout<<i<<" ";
ifstream fin("ciur.in"); }
ofstream fout("ciur.out"); fin.close();
fin>>n; return 0;
}

varianta 2

#include<iostream> for(i=2;i<=n;i++)
#include<fstream>
using namespace std; {
//ciurul lui Eratostene2 if(a[i]==0) //deci i este prim
int main() for(int j=2*i;j<=n;j=j+i) //facem tabelul
{ //valorilor pe hartie ca sa intelegem
int n,i; a[j]=1; //este multiplu de i
ifstream fin("ciur.in");
ofstream fout("ciur.out"); }
fin>>n;
int a[n+1]={0}; //numaram de la 0, deci vectorul for(i=0;i<=n;i++)
are n+1 elemente if(a[i]==0)
cout<<i<<",";
// for(i=0;i<=n;i++)
// cout<<a[i]<<" ";
fin.close();
//vectorul retine 0 nr prim, 1 nr cu divizori pentru return 0;
//indicele elementului; }
//logica este asa cum am facut pe tabla: iau
primul //numar-este prim.
//atunci toti multiplii sai nu sunt numere prime
a[0]=1; //0 nu e prim
a[1]=1; //1 nu e prim
varianta 3

#include<iostream> for(i=4;i<=n;i=i+2)
#include<fstream> a[i]=1; //sunt multipli de 2 deci nu sunt numere
// #include<bits/stdc++.h> prime
using namespace std;
for(i=3;i*i<=n;i=i+2) //numerele impare pornind
//ciurul lui Eratostene3 de la 3 pana la radical din n
int main() if(a[i]==0) // ...daca avem un numar impar
{ care este prim
int n,i; for(int j=i*i;j<=n;j=j+2*i) //
a[j]=1;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
fin>>n; for(i=0;i<=n;i++)
int a[n+1]={0}; //numaram de la 0, deci vectorul if(a[i]==0)
are n+1 elemente cout<<i<<",";

// for(i=0;i<=n;i++)
// cout<<a[i]<<" "; fin.close();
return 0;
//vectorul retine 0 nr prim, 1 nr cu divizori pentru }
indicele elementului;
//logica este asa cum am facut pe tabla: iau primul
numar-este prim.
//atunci toti multiplii sai nu sunt numere prime
a[0]=1; //0 nu e prim
a[1]=1; //1 nu e prim

S-ar putea să vă placă și