Cod sursa(job #1726387)
Utilizator | Data | 7 iulie 2016 21:45:19 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 80 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <cstdio>
#include <cstring>
#include <iostream>
#include <math.h>
int main() {
FILE *fin = fopen("ciur.in", "r");
FILE *fout = fopen("ciur.out", "w");
int n, count;
fscanf(fin, "%d", &n);
fclose(fin);
bool ciur[n + 1];
memset(ciur, true, sizeof(bool) * (n + 1));
count = -2;
for (int i = 2; i < sqrt(n); i++) {
for (int j = i * i; j < n; j += i) {
ciur[j] = false;
}
}
for (int i = 1; i <= n; i++) {
if (ciur[i]) {
count++;
}
}
fprintf(fout, "%d", count);
fclose(fout);
return 0;
}