AcWing 3550. Special数
原题链接
简单
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using pii = pair<int,int>;
const int N = 1e9+10;
const int M = 1e3+10;
int t,n,m,k,l,r,op,x,y;
unordered_set<int> st;
int f[M];
void solve(){
k = pow(N,1.0/2)+1;
for(int i = 1;i<=k;i++){
st.insert(i*i);
}
k = pow(N,1.0/3)+1;
for(int i = 1;i<=k;i++){
if(st.find(i*i*i)!=st.end()){
f[i] = 1;
}
}
for(int i = 1;i<M;i++){
f[i] += f[i-1];
}
cin>>t;
while(t--){
cin>>n;
k = (int)floor(pow(n,1.0/3)+1e-7);
cout<<f[k]<<"\n";
}
}
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
solve();
return 0;
}