Cod sursa(job #653386)
Utilizator | Data | 27 decembrie 2011 20:54:58 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.46 kb |
#include<fstream>
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
int i,j,nr,n;
bool *prim;
int main()
{
fin >> n;
prim = new bool[n+1];
for ( i = 1; i <= n; i++ )
prim[i]=false;
nr=0;
for (i=2; i<=n; i++)
{
if (prim[i]==false) //daca e prim
{
j=2;
while(i*j<=n) //marcam multiplii numarului de la patratul sau incolo
{
prim[i*j]=true;
j++;
}
nr++;
}
}
fout << nr;
return 0;
}