给你n个格子,每个格子初始状态都是1,然后这样变化1 2 3...n,2 4 6 ... n,
3 6 9 ....n ,...n;如果是1变成0,如果是0变成1,问经过n次变换之后有几个0.
思路:
水题,直接模拟,不解释了。
#include<stdio.h> int main () { int t ,n ,i ,sum; int mark[110]; scanf("%d" ,&t); while(t--) { scanf("%d" ,&n); for(i = 1 ;i <= 105 ;i ++) mark[i] = 1; for(i = 1 ;i <= n ;i ++) for(int j = i ;j <= n ;j += i) mark[j] ^= 1; for(sum = 0 ,i = 1 ;i <= n ;i ++) if(!mark[i]) sum ++; printf("%d " ,sum); } return 0; }