Cod sursa(job #516388)
| Utilizator | Data | 23 decembrie 2010 21:26:09 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.4 kb |
#include<stdio.h>
#define N 2000001
int main()
{long n,t,j,k;
char a[N];
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%ld",&n);
for(j=2;j<=n;j++)
a[j]='0';
k=n-1;
j=2;
while(j*j<=n)
{if(a[j]=='0')
{for(t=2;t*j<=n;t++)
if(a[t*j]=='0')
{a[t*j]='1';
k--;}}
j++;}
printf("%ld",k);
return 0;}
