Cod sursa(job #597403)

Utilizator MarianGMarian MarianG Data 22 iunie 2011 00:33:41
Problema Ciurul lui Eratosthenes Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.47 kb
#include <stdio.h>
#include <math.h>

int vprim[100]={2,3};

int prim(int a)
{
	int i,ra;
	ra = (int) sqrt(a);
	for(i=0;vprim[i]<=ra;i++)
		if(a%vprim[i] == 0) return 0;
	return 1;
}

int main(void)
{
	int i,c=1,N;

	freopen("ciur.in","r",stdin);
		scanf("%d",&N);
	fclose(stdin);

	for(i=3;i<=N;i+=2)
		if(prim(i)) 
		{
			c++;
			if (vprim[c]==0) vprim[c]=i;
		}

	freopen("ciur.out","w",stdout);
		printf("%d",c);
	fclose(stdout);
	return 0;
}