Pagini recente » Cod sursa (job #3155107) | Cod sursa (job #435479) | Cod sursa (job #628315) | Cod sursa (job #245777) | Cod sursa (job #341805)
Cod sursa(job #341805)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <map>
#include <set>
using namespace std;
#define mp make_pair
#define pb push_back
#define sz(c) (int)((c).size())
#define f first
#define s second
#define fin "ciur.in"
#define fout "ciur.out"
#define NMAX 2000001
#define pos(x,tmp) ( tmp = (( (x)/2 - 1 ) / 32) )
int N;
int v[NMAX/64];
int main()
{
int i, j, count = 1, tmp;
int pos, mask, rem;
ifstream f(fin);
ofstream f2(fout);
f >> N;
memset(v,0,sizeof(v));
pos = 0;
mask = -1;
for ( i = 3; i <= N; i += 2 )
{
++mask;
if ( mask == 32 ) ++pos, mask = 0;
if ( (v[pos] & ( 1 << mask )) == 0 )
{
++count;
for ( j = (tmp = (i << 1)) + i; j <= N; j += tmp )
v[ pos(j,rem) ] |= ( 1 << ( (j >> 1) - 1 - (rem << 5) ));
}
}
f2 << count << endl;
return 0;
}