Cod sursa(job #980824)

Utilizator daniel.amarieiDaniel Amariei daniel.amariei Data 5 august 2013 18:24:46
Problema Ciurul lui Eratosthenes Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>
#include <math.h>

int is_prime(int a)
{
	int i;
	int sqr;
	
	if (a < 2) 		return 0;
	if (a == 2) 	return 1;
	// besides 2, even numbers can not be prime
	if (a % 2 == 0) return 0;

	sqr = (int)	(sqrt((double)a) + 0.5);
	for (i = 3; i <= sqr; ++i);
		if ((a % i) == 0) return 0;

	return 1;
}

int ciur_1(int n)
{
	int i;
	int nprimes = 0;

	for (i = 2; i <= n; ++i)
		if (is_prime(i)) ++nprimes;

	return nprimes;
}

int main()
{
	int N;
	freopen("ciur.in", "r", stdin);
	freopen("ciur.out", "w", stdout);

	scanf("%d", &N);
	printf("%d\n", ciur_1(N));

	return 0;
}