#include<bits/stdc++.h>
using namespace std;
long long n;
long long sum;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n;
long long z = sqrtl(n);
sum += (long long)z;
// for(int i = 1; i <= z; i++) {
// cout << pow(i, 2) << "\n";
// }
long long i = 3;
while((long long)pow(n, (long double)1.0 / i) >= 2) {
long long x = (long long)pow(n, (long double)1.0/i);
sum += (long long)x;
set<long long> st;
st.insert(1);
long long j = 2;
while((long long)pow((long long) x, (long double)1.0/j) >= 2) {
for(long long k = 1; k <= (long long)pow((long long) x, (long double)1.0/j); k++){
st.insert(pow(k, j));
}
if(j != 2) j++;
j++;
}
sum -= st.size();
i+=2;
}
cout << sum;
return 0;
}
现在校内模拟测同样题目不同数据通过,目前怀疑精度爆炸