Cod sursa(job #651120)

Utilizator kinda_93kinda asfour kinda_93 Data 19 decembrie 2011 21:11:12
Problema Ciurul lui Eratosthenes Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.52 kb
#include "stdio.h"
#include "malloc.h"

#define MAXLEN 2000000
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(MAXLEN*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;
}