Cod sursa(job #2075957)
| Utilizator | Data | 25 noiembrie 2017 21:28:18 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.59 kb |
#include <bits/stdc++.h>
#define MaxN 2000005
#define INF 2140000000
#define MOD 1999999973
using namespace std;
FILE*IN,*OUT;
int N,Ans=0;
bool p[MaxN];
int Sieve(int L)
{
Ans++;
for(int i=2;i<=L;i+=2)
p[i]=1;
for(int i=3;i<=L;i++)
{
if(!p[i])
{
Ans++;
for(long long j=1LL*i*i;j<=L;j+=2*i)
p[j]=1;
}
}
}
int main()
{
IN=fopen("ciur.in","r");
OUT=fopen("ciur.out","w");
fscanf(IN,"%d",&N);
Sieve(N);
fprintf(OUT,"%d\n",Ans);
return 0;
}
