Cod sursa(job #2185027)
| Utilizator | Data | 24 martie 2018 12:41:23 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.58 kb |
#include <bits/stdc++.h>
const int MAX_VAL = 2000005;
using namespace std;
ifstream fin("ciur.in");
ofstream fout("ciur.out");
bool prim[MAX_VAL];
void ciur()
{
int i, j;
prim[0]=prim[1]=0;
for(i=2; i<MAX_VAL; i++)
prim[i]=1;
for(i=4; i<MAX_VAL; i+=2)
prim[i]=0;
for(i=3; i*i<MAX_VAL; i+=2)
if(prim[i])
for(j=i*i; j<MAX_VAL; j+=2*i)
prim[j]=0;
}
int main()
{
int i, n, k=0;
fin>>n;
ciur();
for(i=2; i<=n; i++)
if(prim[i])
k++;
fout<<k<<'\n';
return 0;
}
