1....n编号的囚房有囚犯,狱警从1开始把1的倍数...2的倍数编号...n的倍数的编号的门--》 (开变成关 关变成开)
第i轮结束后如果i 的门是开的那i就可以走人了
门一开始是关的
1奇数次操作后门会开,因此编号因子数为奇数的门的囚犯才能跑的掉
- -只有平方数因子数才为奇数...
找出<=n且>=1的平方数个数就好
#include<bits/stdc++.h>
using namespace std;
bool a[300]={0};
void Gao()
{
for (int i=1;i<=11;i++)
a[i*i]=true;
}
int main()
{
//freopen("a.in","r",stdin);
int T;
cin>>T;
Gao();
while (T--)
{
int ans=0;
int n;
cin>>n;
for (int i=1;i<=n;i++)
if(a[i]) ans++;
cout<<ans<<endl;
}
return 0;
}