Cod sursa(job #841786)
| Utilizator | Data | 24 decembrie 2012 22:06:11 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <stdio.h>
#include <math.h>
#define MAXN 2000001
char neprim[MAXN];
int prime;
int n;
void ciur()
{
int i,j;
int m = (int)sqrt(n);
for(i=2;i<=m;i++){
if( neprim[i] == 0 ){
for(j=2;j<=n/i;j++){
if( neprim[i*j] == 0 ){
prime--;
neprim[i*j] = 1;
// printf("%d nu e prim\n",i*j);
}
}
}
}
}
int main(int argc, char* argv[])
{
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
scanf("%d",&n);
prime = n-1;
ciur();
printf("%d",prime);
return 0;
}
