Cod sursa(job #651122)

Utilizator kinda_93kinda asfour kinda_93 Data 19 decembrie 2011 21:16:35
Problema Ciurul lui Eratosthenes Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.53 kb
#include "stdio.h"
#include "malloc.h"

typedef unsigned int DWORD;
typedef unsigned char BYTE;

FILE *f,*g;
DWORD n,i,nr,j;
BYTE *v;

int main()
{
	f = fopen("ciur.in","r");
	fscanf(f,"%d",&n);
	g = fopen("ciur.out","w");
	v = (BYTE *)malloc((n+1)*sizeof(BYTE));
	if(v == NULL)
		return(1);
	for(i=1;i<=n;i++)
		v[i]=1;
	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;
}