Cod sursa(job #1008269)
| Utilizator | Data | 10 octombrie 2013 18:50:03 | |
|---|---|---|---|
| Problema | Ciurul lui Eratosthenes | Scor | 30 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <stdio.h>
#include <stdlib.h>
int main()
{
int i,j, n, *v,nr=0;
FILE *f = fopen("ciur.in", "r");
fscanf(f,"%d", &n);
v = (int*)malloc(sizeof(int)*n);
for (i = 1; i <= n; i++)
v[i] = 1;
v[1] = 0;
for (i = 2; i <= n; i++)
{
j = i;
if ((i*i < n)&&(v[i]))
while (i*j<=n)
{
v[i*j] = 0;
j++;
}
}
for (i = 1; i <= n; i++)
printf("%d ", v[i]);
for (i = 1; i <= n;i++)
if (v[i])
nr++;
FILE *g = fopen("ciur.out", "w");
fprintf(g,"%d", nr);
fclose(f);
fclose(g);
return 0;
}