Pagini recente » Cod sursa (job #2548985) | Cod sursa (job #732197) | Cod sursa (job #878432) | Cod sursa (job #1393136) | Cod sursa (job #875696)
Cod sursa(job #875696)
#include <fstream>
#include <bitset>
#include <cmath>
using namespace std;
int main() {
ifstream fin("ciur.in");
ofstream fout("ciur.out");
int n; fin >> n;
bitset<2000001> sieve;
int sqrt_n=sqrt(n);
for (int i=3,j; i<=sqrt_n; ) {
for (j=i*i; j<=n; j+=(i<<1)) sieve.set(j);
while ((i+=2)<=sqrt_n && sieve[i]);
}
fout << n-n/2-sieve.count();// 1 counted, 2 not counted
return 0;
}