Cod sursa(job #365928)
| Utilizator | Data | 20 noiembrie 2009 14:34:03 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.67 kb |
#include<stdio.h>
#include<stdlib.h>
int main()
{
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
int n;
char ciur[2000001];
scanf("%d", &n);
fclose(stdin);
for(int i=2; i<=n; i++)
ciur[i]='1';
int j=2;
while(j<=n)
{
if(ciur[j]=='1')
{
for(int i=j+j; i<=n; i+=j)
ciur[i]='0';
}
j++;
}
int sol=0;
for(int i=2; i<=n; i++)
{
if(ciur[i]=='1')
sol++;
}
printf("%d",sol);
fclose(stdout);
return 0;
}
