Cod sursa(job #980943)

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

int ok[NMAX];
unsigned 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 = 0;

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

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

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

	fclose(pf);
	fclose(pg);

	return 0;
}