快速幂开个long long即可,也可以暴力,因为数据小于10^18,即k<16
#include<cstdio>
#include<cmath>
using namespace std;
typedef long long ll;
ll quic_power(ll x,ll n){ //快速幂
ll result=1;
for(;n;n>>=1){
if(n&1)
result*=x;
x*=x;
}
return result;
}
int main(){
ll n;
int cnt;
while(~scanf("%lld",&n)){
cnt=0;
for(int i=1;i<=15;i++)
if(quic_power(i,i)<=n)
cnt++;
printf("%d\n",cnt);
}
return 0;
}