Cod sursa(job #793256)
Utilizator | Data | 2 octombrie 2012 13:33:49 | |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.5 kb |
#include <cstdio>
#define LGMAX 2000003
using namespace std;
FILE *inFile = fopen ("ciur.in", "r");
FILE *outFile = fopen ("ciur.out", "w");
char s[LGMAX];
int sieve(int x)
{
int nr = 0;
for (int i = 2; i <= x; ++i)
if (s[i] == 0)
{
for (int j = 2 * i; j <= x; s[j] = 1, j += i);
++nr;
}
return nr;
}
int main()
{
int n;
fscanf (inFile, "%d", &n);
fprintf (outFile, "%d\n", sieve(n));
return 0;
}