题意:
一开始有2 3 ... N,N - 1个数,初始都未被标记。首先找到最大的未被标记的数N,把他的约数都标记上(不包括本身),然后在2 ... N - 1里继续重复操作。
问最后没有被标记的数有多少个。
难得的一行代码题。
从2到n / 2都会被标记,剩下的就是没有被标记的,答案为n - n / 2(或者(n + 1) / 2)
#include <cstdio>
int main() {
int T; scanf("%d", &T);
while(T--) {
int n; scanf("%d", &n);
printf("%d\n", n - n / 2);
}
return 0;
}
(具体证明还真不会