Cod sursa(job #793254)
| Utilizator | Data | 2 octombrie 2012 13:33:22 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 30 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.5 kb |
#include <cstdio>
#define LGMAX 2000001
using namespace std;
FILE *inFile = fopen ("ciur.in", "r");
FILE *outFile = fopen ("ciur.out", "w");
int 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;
}
