Pagini recente » Cod sursa (job #2917165) | Cod sursa (job #2161870) | Cod sursa (job #1429759) | Cod sursa (job #140907) | Cod sursa (job #1358356)
#include<stdio.h>
unsigned int v[2000050/32];
int main()
{
freopen("ciur.in", "r", stdin);
freopen("ciur.out", "w", stdout);
int n, count = 0;
scanf("%d", &n);
int r_n = n;
n = n/32 + 1;
int lim = r_n < 32 ? r_n : 32;
for(int i = 0 ; i < n ; ++i) {
v[i] = (1 << 32) - 1;
}
int j = 2;
for(int i = 0 ; i < n ; ++i) {
for(; j < lim ; ++j) {
if(v[i] & (1 << j)) {
++count;
int nr = i * 32 + j;
for(int k = nr ; k <= r_n ; k += nr) {
int x = k / 32;
int y = k % 32;
v[x] &= ~(1 << y);
}
}
}
j = 0;
}
printf("%d", count);
return 0;
}