Cod sursa(job #1125006)

Utilizator eraser_aCarp Andrei eraser_a Data 26 februarie 2014 15:05:15
Problema Ciurul lui Eratosthenes Scor 50
Compilator c Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
#include <stdlib.h>

#define NUMBER_COUNT 2000001
char numbers[NUMBER_COUNT];

FILE *in, *out;

int main()
{
	long base_index, multiple_index;
	long N;
	long count_primes = 0;
	
	in = fopen("ciur.in","r");
	fscanf(in,"%ld",&N);
	fclose(in);

	for(base_index=2;base_index<=N;base_index++)
	{
		count_primes+=!(numbers[base_index]);

		for(multiple_index=base_index<<1;multiple_index<=N;multiple_index+=base_index)
		{
			numbers[multiple_index] = 1;
		}
	}

	out = fopen("ciur.out","w");
	fprintf(out,"%ld",count_primes);
	fclose(out);

	return 0;
}