Cod sursa(job #929683)
Utilizator | Data | 27 martie 2013 10:35:06 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.51 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)
{
++nr;
for(int j=i*i ; j<=n ; j+=2*i)
a[j]=1;
}
}
int main()
{
freopen("ciur.in" , "r" , stdin);
freopen("ciur.out" , "w" , stdout);
scanf("%d" , &n);
ciur(n);
printf("%d" , nr);
return 0;
}