Cod sursa(job #2353791)

Utilizator stratonedanielDaniel Stratone stratonedaniel Data 24 februarie 2019 16:26:21
Problema Ciurul lui Eratosthenes Scor 10
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.6 kb
#include <stdio.h>
#include <stdlib.h>

void do_nothing(int null)
{}

int main()
{

	int N;

	FILE *read=fopen("ciur.in","r");
	FILE *write=fopen("ciur.out","w");
	int null;

	null=fscanf(read,"%d",&N);

	do_nothing(null);
	
	int *marked=(int*)calloc(2000006,sizeof(int));

	int number_of_primes=0;

	if(N==1)
		fprintf(write,"%d\n",0);
	else
	{
		marked[2]=1;
		number_of_primes++;

		for(int i=2;i<=N;i++)
			if(marked[i]==0)
			{
				number_of_primes++;
				for(int j=i+i;j<=N;j++)
					marked[j]=1;
			}
	
	}

	fprintf(write,"%d\n",number_of_primes);

	free(marked);
	fclose(read);
	fclose(write);

	return 0;
}