Pagini recente » Cod sursa (job #1834131) | Cod sursa (job #1852894) | Cod sursa (job #787353) | Cod sursa (job #1014253) | Cod sursa (job #1209428)
#include <stdio.h>
#include <math.h>
#define PRIME 0
#define COMPOSITE 1
char a[2091152];
void sieve(int n)
{
int i, j;
int square_root_n = sqrt(n);
for (i = 2; i <= square_root_n; ++i)
{
if (a[i] == PRIME)
{
for (j = i * i; j <= n; j += i)
{
a[j] = COMPOSITE;
}
}
}
}
int count_prime_numbers(int n)
{
int i, primes = 1;
for (i = 3; i <= n; i += 2)
{
if (a[i] == PRIME)
{
++primes;
}
}
return primes;
}
int main()
{
int i, j, N;
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
scanf("%d", &N);
sieve(N);
printf("%d", count_prime_numbers(N));
return 0;
}