Cod sursa(job #1008269)

Utilizator rucarRucareanu Alexandru rucar Data 10 octombrie 2013 18:50:03
Problema Ciurul lui Eratosthenes Scor 30
Compilator c Status done
Runda Arhiva educationala Marime 0.54 kb
#include <stdio.h>
#include <stdlib.h>

int main()
{
	int i,j, n, *v,nr=0;
	FILE *f = fopen("ciur.in", "r");
	fscanf(f,"%d", &n);
	v = (int*)malloc(sizeof(int)*n);
	for (i = 1; i <= n; i++)
		v[i] = 1;
	v[1] = 0;
	for (i = 2; i <= n; i++)
	{
		j = i;
		if ((i*i < n)&&(v[i]))
		   while (i*j<=n)
		   {
			v[i*j] = 0;
			j++;
		   }
	}
	for (i = 1; i <= n; i++)
		printf("%d ", v[i]);
	for (i = 1; i <= n;i++)
	if (v[i])
		nr++;
	FILE *g = fopen("ciur.out", "w");
	fprintf(g,"%d", nr);
	fclose(f);
	fclose(g);
	return 0;
}