Cod sursa(job #1153252)

Utilizator rstoicaAndrei Stoica rstoica Data 25 martie 2014 12:42:56
Problema Ciurul lui Eratosthenes Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>
#include<math.h>

int ciur_erathostene (char *arr, int n)
{
	int i,j,count;
	count = n-2+1;
	for (i = 2 ; i <= n ; ++i)
	{
		arr[i] = 1;
	}
	for (i = 2 ; i <= (int)sqrt(n) ; ++i)
	{
		if (arr[i])
		{
			for (j = i+i ; j <= n ; j+=i)
			{
				if(arr[j])
				{
					arr[j] = 0;
					--count;
				}	
			}
		}
	}
	return count;
}

int main()
{
	FILE *fp = NULL;
	char prim[2000001];
	int num;
	fp = fopen("ciur.in","r");
	fscanf(fp,"%d",&num);
	fclose(fp);
	num = ciur_erathostene(prim,num);
	fp = fopen("ciur.out","w");
	fprintf(fp,"%d\n",num);
	fclose(fp);
	return 0;
}