Cod sursa(job #622107)

Utilizator mattapoMatei Apolzan mattapo Data 17 octombrie 2011 14:12:06
Problema Ciurul lui Eratosthenes Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<stdio.h>
const int N=1000000;
bool c[N];
int prim (int x)
{
	int i;
	if (x==2)
		return false;
	else
		if (x%2==0)
		{
			return true;
		}
	for (i=3;i*i<=x;i+=2)
	{
		if (x%i==0)
		{
			return true;
			break;
		}
	}
	return false;
}
int main ()
{
	int n,j,i,cnt=0;
	freopen("ciur.in","r",stdin);
	freopen("ciur.out","w",stdout);
	scanf ("%d",&n);
	for (i=2;i*i<=N;i++)
	{
		if (prim(i)==false)
			for(j=i*i;j<=n;j+=i)
				c[j]=true;
	}
	for (i=2;i<=n;i++)
		if (c[i]==false)
			cnt++;
	printf("%d",cnt);
	return 0;
}