Cod sursa(job #513976)
| Utilizator | Data | 17 decembrie 2010 14:56:02 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.52 kb |
#include <stdio.h>
#define NMax 2000005
FILE *fin = fopen("ciur.in", "rt");
FILE *fout = fopen("ciur.out", "wt");
int n;
char prime[NMax];
int main()
{
fscanf(fin, "%d", &n);
for (int i = 2; i <= n; i++)
prime[i] = 1;
int rez = 0;
int i;
for (i = 2; i * i <= n; i++)
if (prime[i])
{
rez++;
for (int j = (i * i); j <= n; j += i)
prime[j] = 0;
}
for (; i <= n; i++)
if (prime[i])
rez++;
fprintf(fout, "%d\n", rez);
fclose(fin);
fclose(fout);
return 0;
}
