AcWing 3550. Special数(哈希表预处理---笨蛋办法)
原题链接
简单
作者:
subnn17
,
2024-09-10 17:14:28
,
所有人可见
,
阅读 2
C++ 代码
#include<iostream>
#include<cmath>
#include<unordered_map>
#include<vector>
using namespace std;
int main(){
int t;
cin >> t;
unordered_map<long long, int> ump;
for(long long i = 1; i <= sqrt(1000000000); i++){
ump[i * i]++;
ump[i * i * i]++;
}
while (t --){
int n;
cin >> n;
int cnt = 0;
for(long long i = 1; i <= sqrt(n); i++){
if (ump[i * i] >= 2){
cnt++;
}
}
// for(int i = 1; i <= n; i++){
// int tmp1 = sqrt(i);
// int tmp2 = pow(i, 1/3.0);
// if (tmp1 == sqrt(i) and tmp2 - 0.1 < pow(i, 1/3) and tmp2 + 0.1 > pow(i, 1/3)){
// cnt++;
// }
// }
cout << cnt << endl;
// ump.clear();
}
return 0;
}