Cod sursa(job #325138)

Utilizator lukaisthewolfRaluca Lupu lukaisthewolf Data 19 iunie 2009 00:20:10
Problema Ciurul lui Eratosthenes Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.5 kb
#include<stdio.h>
#include<stdlib.h>

int main()
{
	int n,i,nr=0,j;
	char *ciur;
	
	FILE *f, *g;
	
	
	f=fopen("ciur.in", "r");
	g=fopen("ciur.out", "w");
	
	fscanf(f, "%d", &n);
	
	ciur=(char*) malloc (n*sizeof(char));
	
	for(i=0;i<n;i++)
	{
		ciur[i]='1';
	}
	
	for(i=2;i<n;i++)
	{
		if(ciur[i]=='1')
		{
			for(j=2*i;j<n;j=j+i)
			{
				ciur[j]='0';
			}
		}
	}
	
	for(i=2;i<=n;i++)
	{
		if(ciur[i]=='1')
		{
			nr++;
		}
	}
		
	fprintf(g, "%d", nr);
	
	free(ciur);
	fclose(f);
	fclose(g);
	
	return 0;
}