Cod sursa(job #234557)
| Utilizator | Data | 21 decembrie 2008 10:26:04 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include<stdio.h>
#include <bitset>
#define Nmax 2000005
using namespace std;
bitset<Nmax> V;
int N, x;
int ciur(){
int i, j, nr = 1;
x = 1;
for (i = 3; i <= N ; i += 2)
if (V[i] == false){
++x;
++nr;
if (i <= 32000)
for (j = i * i; j <= N; j += i)
V[j] = true;
}
return nr;
}
int main(){
int i;
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d", &N);
printf("%d\n",ciur());
}
