Cod sursa(job #2695246)
| Utilizator | Data | 12 ianuarie 2021 11:19:57 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | c-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.49 kb |
#include <stdio.h>
#define MAXN 2000000
char ciur[MAXN + 1];
int main(){
FILE *fin = fopen("ciur.in", "r");
FILE *fout = fopen("ciur.out", "w");
int n, d, i, nrp;
fscanf(fin, "%d", &n);
ciur[0] = ciur[1] = 1;// nu sunt prime
for( d = 2 ; d * d <= n ; d++ )
if( !ciur[d] )
for( i = d * d ; i <= n ; i += d )
ciur[i] = 1;
nrp = 0;
for( i = 2 ; i <= n ; i++ )
nrp += (1 - ciur[i]);
fprintf(fout, "%d\n", nrp);
fclose(fin);
fclose(fout);
return 0;
}
