#include <iostream>
int T, n, tmp = 1;
int main(int argc, char** argv){
scanf("%d", &T);
for(int i = 0; i < T; i++){
int arr[101] = {0}; // 0 : 닫힘, 1 : 열림
int cnt = 0;
scanf("%d", &n);
for(int j = 1; j <= n; j++){
tmp = j;
while(tmp <= n){
if(arr[tmp] == 0){
arr[tmp] = 1;
} else {
arr[tmp] = 0;
}
tmp += j;
}
}
for(int j = 1; j <= n; j++){
if(arr[j] == 1){
cnt++;
}
}
printf("%d\n", cnt);
}
return 0;
}
왜 바로 풀지를 못하고 생각을 좀 했어야했는지. 아직 수련이 많이 부족한 것 같다.
그리고 0 <-> 1 반전에 비트반전을 써보려고 했는데 비트반전을 하면 -1이 되는 것 같더라 ㅋㅋㅋ 왜 그 생각을 못했을까
약간 에라토스테네스의 체를 응용한 문제처럼 풀었다.