Pagini recente » Cod sursa (job #231198) | Cod sursa (job #1152091) | Cod sursa (job #2313406) | Cod sursa (job #1675596) | Cod sursa (job #2642285)
#include <bits/stdc++.h>
using namespace std;
typedef unsigned long long ull;
typedef long long ll;
struct my_timer{
chrono::time_point<chrono::high_resolution_clock> start;
my_timer():
start(chrono::high_resolution_clock::now()){}
~my_timer(){
std::chrono::duration<double> diff = chrono::high_resolution_clock::now() - start;
clog<<diff.count()<<"s\n";
}
};
char ciur[2000000/16 + 1];
int main()
{
freopen("ciur.in","r",stdin);
freopen("ciur.out","w",stdout);
int n;
scanf("%d",&n);
int ret = 1;//n >= 2
int i=1;
for(; (i*(i+1)<<1) + 1 <= n;++i){
if((ciur[i>>3] & (1<<(i&7))) == 0){
++ret;
for(int j=i*(i+1)<<1;(j<<1) + 1<=n;j += (i<<1) + 1){
ciur[j>>3] |= (1<<(j&7));
}
}
}
while((i<<1) + 1 <= n)
ret += !(ciur[i>>3] & (1 << (i & 7))), ++i;
printf("%d",ret);
}