Cod sursa(job #634162)
Utilizator | Vladarean Maria ml.vladarean | Data | 15 noiembrie 2011 19:12:00 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 60 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <iostream>
#include <fstream>
using namespace std;
int N,nr;
char ciur[2000001];
void sol()
{
int i=2,j;
for(j=2;j<=N;j++)
ciur[j]=1;
while(i<=N/2)
{
if(ciur[i])
{
nr++;
for(j=i;j<=N;j+=i)
if(ciur[j])
ciur[j]=0;
i++;
}
else
i++;
}
for(j=N/2+1;j<=N;j++)
if(ciur[j])
nr++;
}
int main()
{
ifstream fin("ciur.in");
ofstream fout("ciur.out");
fin>>N;
fin.close();
sol();
fout<<nr;
fout.close();
return 0;
}