Cod sursa(job #1097186)
| Utilizator | Data | 3 februarie 2014 10:20:28 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 50 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.55 kb |
#include <cstdio>
#include <bitset>
#define Nmax 2000099
using namespace std;
int N,P[100000];
bitset < Nmax > v;
void Ciur(int N)
{
P[++P[0]]=2;
for(int i=3;i<=N;i+=2)
if(!v[i])
{
P[++P[0]]=i;
if(1LL*i*i<=1LL*N)
for(int j=i;j<=N;j+=i)
if(!v[j])v[j]=1;
}
}
int main()
{
freopen("ciur.in", "rt", stdin);
freopen("ciur.out", "wt", stdout);
scanf("%d",&N);
Ciur(N);
printf("%d\n",P[0]);
return 0;
}
