Cod sursa(job #929692)
Utilizator | Data | 27 martie 2013 10:36:53 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include<stdio.h>
#include<math.h>
bool a[2000001];
int nr , n;
void ciur(int n)
{
nr=1;
for (int i=4 ; i<=n ; i+=2)
a[i]=1;
int lim=(int)((double) n);
for (int i=3 ; i<=lim ; i+=2)
if(a[i] == 0)
for(int j=i*2 ; j<=n ; j+=i)
a[j]=1;
for (int i=3 ; i<=n ; ++i)
nr+=!a[i];
}
int main()
{
freopen("ciur.in" , "r" , stdin);
freopen("ciur.out" , "w" , stdout);
scanf("%d" , &n);
ciur(n);
printf("%d" , nr);
return 0;
}