Cod sursa(job #980951)

Utilizator petrutsxMihaela Petruta Gaman petrutsx Data 5 august 2013 23:38:38
Problema Ciurul lui Eratosthenes Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.51 kb
#include<stdio.h>
#define NMAX 2000000

int ok[NMAX];
int N, nr;

int prim(int x){
	int i;
	for(i = 2; i <= x/2; i++)
		if(x % i == 0)
			return 0;
	return 1;
}

void Erathostenes(int N){
	int i, j;
	nr = 1;

	for(i = 3; i <= N; i+=2)
		if(!ok[i]){
			if(prim(i))
				nr++;
			for(j = i+i; j <= N; j+=i)
					ok[j] = 1;
		}
}

int main(){
	FILE *pf, *pg;
	pf = fopen("ciur.in", "r");
	pg = fopen("ciur.out", "w");

	fscanf(pf, "%d", &N);
	Erathostenes(N);
	fprintf(pg, "%d", nr);

	fclose(pf);
	fclose(pg);

	return 0;
}