浙大集训day9:C.Interesting Set
给出一个集合S,必须满足下列规则:
1)S只包含小于等于n的正整数。
2)如果正整数\(a\)属于\(S\),则正整数\(a^2\)一定不属于\(S\)。
给出\(n\),你需要找到\(S\)的最大大小。
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+100;
int main () {
int _;
scanf("%d",&_);
while (_--) {
int n;
scanf("%d",&n);
int ans=0;
int tt=0;
while (n>1) {
//printf("%d %d\n",n,tt);
if (tt%2==1) {
n=sqrt(n);
tt++;
continue;
}
int x=sqrt(n);
ans+=n-x;
n=sqrt(n);
tt++;
}
printf("%d\n",ans+1);
}
}