Cod sursa(job #651121)
Utilizator | kinda asfour kinda_93 | Data | 19 decembrie 2011 21:12:22 |
---|---|---|---|
Problema | Ciurul lui Eratosthenes | Scor | 30 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include "stdio.h"
#include "malloc.h"
typedef unsigned int DWORD;
FILE *f,*g;
DWORD *v,n,i,nr,j;
int main()
{
f = fopen("ciur.in","r");
fscanf(f,"%d",&n);
g = fopen("ciur.out","w");
v = (DWORD *)malloc(n*sizeof(DWORD));
if(v == NULL)
return(1);
for(i=1;i<=n;i++)
v[i]=i;
nr = 0;
for(i=2;i<=n;i++)
{
if(v[i])
{
nr++;
j = 2*i;
while(j<=n)
{
v[j] = 0;
j+=i;
}
}
}
fprintf(g,"%d\n",nr);
fclose(f);
fclose(g);
return 0;
}