Pagini recente » Cod sursa (job #18091) | Cod sursa (job #563309) | Cod sursa (job #2081692) | Cod sursa (job #191682) | Cod sursa (job #2834248)
#include <bits/stdc++.h>
using namespace std;
ifstream file_in("ciur.in");
ofstream file_out("ciur.out");
int i, j;
bitset<2000000> sieve;
void gen_sieve(int N)
{
sieve[0] = sieve[1] = true;
for (i = 4; i <= N; i += 2) sieve[i] = true;
for (i = 3; i * i <= N; i += 2)
if (!sieve[i])
for (j = i * i; j <= N; j += 2 * i)
sieve[j] = true;
}
void cnt_primes(int N, int& primes)
{
for (i = 3; i <= N; i += 2)
if (!sieve[i]) ++primes;
}
int main()
{
int N, primes = 1; file_in >> N;
gen_sieve(N); cnt_primes(N, primes);
file_out << primes;
return 0;
}